如果表发生变化,和这个表相关的所有缓存数据都将失效。
1)使用hash(sql语句和客户端的一些原始信息) 的方式 判断是否命中。 因此sql语句即使多一个空格,也会造成缓存不命中。
2)查询缓存占用太大的内存或者碎片太多时,失效这些缓存可能会成为瓶颈。
缓存如何管理内存
query_cache_size : 分配内存的总大小
query_cache_min_res_unit : 申请块的最小值 (简写为min_unit)
当存储结果大于 一个 min_unit 时,会再申请多个min_unit, 对于最后一个占不满的min_unit, 系统会将min_unit剩余的部分回收。
当系统在并发的向两个不同的连接返回结果时,安装上面的分配方法就可能会产生 碎片。
缓存评价指标 & 设置缓存参数过程
命中和写入比
这个比率最好能够在10:1 以上。