优秀的编程知识分享平台

网站首页 > 技术文章 正文

如何启用 MySQL 查询缓存?(查看mysql启动)

nanyue 2024-10-20 07:47:57 技术文章 7 ℃

MySQL 查询缓存存储经常和最近运行的查询的查询结果,因此它们可以快速返回,而无需从头开始处理所有内容。 它们在提高查询速度和数据库性能方面非常有用。 以下是为您的数据库启用 MySQL 查询缓存、设置 MySQL 缓存大小和禁用查询缓存的步骤。 请注意,MySQL 查询缓存已在 MySQL 5.7 中弃用,并在 MySQL 8.0 中删除。

如何启用 MySQL 查询缓存

这是您的数据库的 MySQL 查询缓存配置。

1. 检查可用性

登录 MySQL 并运行以下命令以检查 MySQL 查询缓存是否可用于您的数据库。

mysql> SHOW VARIABLES LIKE 'have_query_cache';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| have_query_cache | YES   |
+------------------+-------+

如果结果为 YES,则表示您的数据库支持查询缓存。

2. 默认查询缓存变量

MySQL 查询缓存由许多变量控制。 在更改它们之前,先运行以下命令以查看它们的默认值。

mysql> show variables like 'query_cache_%' ;

您将看到以下输出

+---------------------------------------+----------+
| Variable_name                             | Value    |
+---------------------------------------+----------+
| query_cache_limit                       | 1048576  |
| query_cache_min_res_unit          | 4096     |
| query_cache_size                        | 16777216 |
| query_cache_type                        | OFF      |
| query_cache_wlock_invalidate   | OFF      |
+---------------------------------------+----------+

让我们看看上面的查询缓存变量,

  • query_cache_limit – 可以缓存的查询结果的最大大小
  • query_cache_min_res_result – MySQL 将查询结果存储在块中。 这是每个块的最小大小。
  • query_cache_size – 表示为 MySQL 缓存分配的内存总量。
  • query_cache_type – 将此设置为 0 或 OFF 将禁用 MySQL 查询缓存。 将其设置为 1 启用查询缓存。
  • query_cache_wlock_invalidate – 如果底层表被锁定,确定 MySQL 是否应该从缓存中获取结果。

3. 启用 MySQL 查询缓存

退出MySQL。 打开终端并运行以下命令打开MySQL配置文件。

$ sudo vi /etc/mysql/my.cnf

在 [mysqld] 部分下面添加以下几行

... 
[mysqld] 
query_cache_type=1 
query_cache_size = 10M 
query_cache_limit=256K

我们通过将 query_cache_type 变量设置为 1 来启用查询缓存,单个查询缓存为 256Kb,总缓存为 10Mb。 您可以根据需要更改 query_cache_size 和 query_cache_limit 的值。

4. 重启 MySQL 数据库

重新启动 MySQL 来应用更改生效

$ sudo systemctl restart mysql

$ sudo service mysql restart

$ sudo /etc/init.d/mysql restart

希望本文能帮助您配置 MySQL 查询缓存。

最近发表
标签列表