MySql学习笔记——查询缓存(十七)
- Query Cache:是MySql层面提供的数据缓存,用于缓存select查询的结果
用法:在配置文件中开启缓存
- my.ini(win)/my.cnf(linux)
- 在[mysqlId]中加入query_cache_type = 0/1/2
其中0表示关闭
其中1表示开启,是默认缓存的,我们也可以增加sql-no-cache来放弃缓存
其中2表示开启,但是默认是不开启的,需要增加sql-cache来执行缓存
一般使用2为主
配置完毕后需要长期后生效,重启后,在客户端使用
show variables like ‘query_cache_type’ 查看
demand表示2的意思
在客户端设置缓存大小
通过配置项query_cache_size来修改,单位是字节,可以将其修改,理论上没有上限但受限于物理内存
查询缓存结果
- query_cache_type = 1:直接执行即可
- query_cache_type = 2
执行后续的相同查询,时间变短!
重置缓存
- reset query cache 完成缓存的清空
注意:
- 应用程序不应该关注查询缓存的使用情况,可以使用但不能由查询缓存决定业务逻辑
缓存失效
当数据表改动时,基于该数据表的任何缓存都会被删除,这是表层面的管理
- 即动态数据不能被缓存,所以我们几乎不用,因为缓存失效率太高了
- 缓存检索依赖于sql语句的字符串语法规则,大小写,空格等都会导致缓存失效
例:5前面多了一个空格
例:limit改成大写