mysql查询缓存问题query cache
mysql默认 query_cache 是打开的
你使用 show global variables like '%query_cache%';
确认一下有没有打开,如果打开了。第一次查询读数据文件,第二次就会走query_cache,所以就会很快。当然 ,如果数据更新了,要重新再缓存。
第二种情况 ,表引擎使用innodb.第一次查询也会走数据文件,第二次直接走buffer_pool,也比直接查询数据文件要快
上面的说法是否正确。
本人测试:
--开启查询缓存 在my.ini文件中配置 并重启服务
query_cache_type = 1;
query_cache_size = 134217728;
select * from ccp_usbinforep 语句条数:145011条
--第一次执行语句用时1.181s; 第二次执行用时0.265s
Qcache_hits 为 211 而且会增加说明是在使用查询缓存
--关闭查询缓存 在my.ini 中配置
query_cache_size=0;
query_cache_type = 0;
select * from ccp_usbinforep 语句条数:145011条
第一次执行语句用时0.294s;第二次执行用时0.283s
Qcache_hits为0
以上实验说明,好像mysql缓存不管怎么配置对sql查询的影响时间影响不大,那么配置的意义在于什么呢。
或者以上我哪些配置和理解错误?
如果缓存起作用,就用缓存,缓存关闭就是要表引擎 那么有没缓存影响大么。请大家简单说下自己的理解。3q