对读和写都有影响,因为
1 读的时候要查看结果集是不是在query cache中,如果不在并且这个结果可以被缓存 要放入到 query cache中
2 写入到某个表的时候,需要把这个表相关的query cache中记录都设为无效,如果缓存大或碎片多,那么会浪费时间
查询缓存操作是一个排他操作,这个也会有影响 。
哪些不能被缓存:
当查询语句中有不确定的数据时,结果不能被缓存,例如包括now(),current_date(), 如果查询中包括用户自定义函数,存储过程,用户变量,临时表,mysql库中的系统表或者包括列级权限的表都不会被缓存
来自:高性能mysql p346