查询缓存配置
-
查看当前的MySQL数据库是否支持查询缓存
SHOW VARIABLES LIKE 'have_query_cache';
-
查看当前MySQL是否开启了查询缓存
SHOW VARIABLES LIKE 'query_cache_type';
-
查看查询缓存的占用大小
SHOW VARIABLES LIKE 'query_cache_size';
-
查看查询缓存的状态信息
show status like 'Qcache%';
以下是各个变量的含义
开启查询缓存
- 修改配置文件
vi /usr/my.cnf
- 添加
query_cache_type=1
- 然后重启mysql服务
service mysql restart
查询缓存select选项
-
在select中指定SQL_CACHE,那么query_cache_type=1或者DEMAND或者2,那么
-
在select中指定SQL_NO_CACHE,那服务器不使用查询缓存,既不检查查询缓存,也不检查结果是否已经缓存,也不查询缓存结果
查询缓存失效的情况
-
sql语句必须一致,才能命中查询缓存
-
当查询中有一些不确定时,则不会缓存:如now(),current_date(),curdate(),curtime(),rand(),uuid(),user,database()
-
不使用任何表查询语句:
select 'A';
-
查询mysql,information_shema或performance_shema中的表时,不会走查询缓存
-
在存储的函数,触发器或事件的主体内执行的查询
-
如果表更改,则使用该表的所有高速缓存查询都将变为无效并从告诉缓存中删除