MySQL 的查询缓存(Query Cache)是一个可以加速SELECT查询的功能,它会将SELECT查询的结果缓存起来,当相同的查询再次执行时,如果结果没有改变,则直接从缓存中读取数据,从而提高查询效率。不过需要注意的是,从 MySQL 8.0 开始,官方已经移除了查询缓存功能,因为对于高并发写入的应用场景来说,查询缓存可能会导致性能下降。
如果你使用的是 MySQL 5.7 或更早版本,并且想要开启查询缓存,可以按照以下步骤操作:
- 修改配置文件:
找到 MySQL 配置文件my.cnf
或my.ini
(根据你的操作系统和安装方式,位置可能不同),然后在[mysqld]
段下添加或修改如下参数:
[mysqld]
query_cache_type = 1 # 0=OFF, 1=ON, 2=DEMAND (默认为 OFF)
query_cache_size = 16M # 设置查询缓存大小,例如 16MB
query_cache_limit = 2M # 缓存单个查询的最大结果集大小
-
query_cache_type
控制查询缓存的行为。设置为1
表示自动开启查询缓存,2
表示只有带有 SQL_NO_CACHE 提示的查询才不会被缓存。 -
query_cache_size
定义了用于存储查询结果的内存大小。 -
query_cache_limit
是一个限制,定义了超过这个大小的查询结果不会被缓存。
- 重启 MySQL 服务:
修改完配置文件后,需要重启 MySQL 服务使更改生效。这通常可以通过命令行来完成,如使用service mysql restart
或者/etc/init.d/mysql restart
等命令,具体取决于你的操作系统和服务管理器。 - 验证查询缓存是否开启:
可以通过登录到 MySQL 命令行客户端并运行下面的命令来检查查询缓存的状态:
SHOW VARIABLES LIKE 'have_query_cache';
SHOW VARIABLES LIKE 'query_cache%';
如果 have_query_cache
返回 YES
,则说明支持查询缓存;而其他变量则显示当前的配置状态。