Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景。
1.query cache的key是sql字符串,并且要求精确匹配:大小写不一样或者多了一个空格,都会导致cache miss
2.query cache直接把用户输入的原始sql作为key,不是把解析后或优化后的sql作为key,也不会把其中的子查询独立缓存.
3.存储过程中的sql结果不会被缓存.
4.如果一个sql会产生不确定的结果(即使表中数据没有变化也会不确定),比如select now(),MySQL就不会缓存它的结果.
5.只要表中数据有任何变化,就会导致本表相关的所有query cache统统失效.