-------------------------------------------------------------------------------------------验证----------------------------------------------------------------------------------------------- SQL用的占位符?是被替换成实际参数再保存在QueryCache里面的么? 来验证一下: 1.重启数据库,开启QueryCache show variables like '%query%'; 2.查看Qcache的统计数量 show status like 'Qcache%' 上来就是2,其实是执行了use和show status like 'Qcache%',没想到这种语句也会计算进去╮(╯_╰)╭
3.正戏开始,先执行一个select语句,然后再执行一次,看看计数器的变化 可以看到,第一次查询在QueryCache中找不到,所以insert了进去,之后再执行一模一样的查询 可以看到查询缓存命中了,hits数+1,那么假设前端使用的?占位符替代的10000,当?代表的值变换之后,结果如何? 可以看到查询条件的值变换之后,QueryCache再次出现了miss,把新结果放进了QueryCache 然后reset query cache,顺便看一下Qcache_queries_in_cache show status like 'Qcache%' 的意义 显而易见,这个属性代表放在QueryCache中的查询结果数