mysql优化之query_cache_type的DEMAND参数介绍

Query Cache存储SELECT语句及其产生的数据结果,特别适用于表数据变化不是很频繁的场景,例如一些静态页面,

或者页面中的某块不经常发生 变化的信息。如果此表上有任何写表操作发生,那么和这个表相关的所有缓存都将失效。

由于Query Cache需要缓存最新数据结果,因此表数据 发生任何变化(INSERT、UPDATE、DELETE或其他有可能产生

数据变化的操作),都会导致Query Cache被刷新。对于更新压力大的数据库来说,查询缓存的命中率也会非常低。

但我们可以将参数 query_cache_type 设置成 DEMAND(按需及用)方式,这样对于默认的SQL语句不使用查询缓存,

而对于确定要使用query cache的SQL语句, 可以用sql_cache的方法指定,例如:

select sql_cache * from table_name;

或 select sql_cache count(*) from table_name;

以下是query_cache_type三个参数的含义:

query_cache_type=0(OFF)关闭

query_cache_type=1(ON)缓存所有结果,除非select语句使用SQL_NO_CACHE禁用查询缓存

query_cache_type=2(DEMAND),只缓存select语句中通过SQL_CACHE指定需要缓存的查询
修改为DEMAND方式:
vi /etc/my.cnf,加入如下行:
query_cache_type =2
保存并重启mysql

在DOS命令窗口输入 mysql -hlocalhost -uroot -p回车 进入mysql数据库,其中-h表示服务器名,localhost表示本地;-u为数据库用户名,root是mysql默认用户名;-p为密码,如果设置了密码,可直接在-p后链接输入,如:-p123456,用户没有设置密码,显示Enter password时,直接回车即可。
mysql优化之query_cache_type的DEMAND参数介绍
查看是否开启DEMAND参数:
mysql优化之query_cache_type的DEMAND参数介绍