MySQL 查询缓存

MySQL 拿到一个查询请求后,会先看看之前有没有执行过这条语句,如果执行过,则直接从查询缓存中取之前查询的结果即可,但大多情况不建议使用 MySQL 的查询缓存,因为弊大于利

因为查询缓存的失效非常频繁,只要对一个表进行更新,那么这个表的所有查询缓存将会全部被清除,所以命中率并不会很好,除非你有一张静态的表,不会改变他的数据,或者很久才会更新一次。比如系统配置表,才适合使用这个查询缓存。

还有一个原因是因为,现在有 Redis, MemoryCache 等专门用来做缓存的应用,他们对缓存的处理会更优,而且 MySQL 服务器的资源通常都比较宝贵,所以不推荐使用 MySQL 的查询缓存。

查看查询缓存状态:

1
show variables like '%query_cache_type%';

显式指定使用查询缓存:

1
select SQL_CACHE * FROM user where ID = 10;
  • 本文作者: 赵俊
  • 本文链接: http://www.zhaojun.im/mysql-02/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!