• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

MySQL查询缓存的使用

极客笔记 多啦H梦 8个月前 (08-14) 319次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

查询缓存的使用

my.cnf 中加入以下配置 ,重启 MySQL 开启查询缓存 :

query_cache_type = 1
query_cache_size = 60000

MySQL 命令行执行以下命令,也可开启查询缓存:

set global query_cache_type = 1;
set global query_cache_size = 600000 ;

如上,开启查询缓存后在同样的查询条件以及数据情况下,会直接在缓存中返回结果 。

这里的查询条件包括查询本身、当前要查询的数据库、客户端协议版本号等一些可能影响结果的信息 。

因此任何两个查询在任何字符上的不同都会导致缓存不命中 。

此外,如果查询中包含任何用户自定义函数、存储函数、用户变量 、 临时表、 MySQL 库中的系统表, 其查询结果也不会被缓存 。

缓存建立之后, MySQL 的查询缓存系统会跟踪查询中涉及的每张表,如果这些表( 数据或结构)发生变化,那么和这张表相关的所有缓存数据都将失效 。

缓存虽然能够提升数据库的查询性能,但是缓存也同时带来了额外的开销,每次查询后都要做一次缓存操作,失效后还要销毁 。

因此,开启缓存查询要慎重,尤其对于写密集的应用来说更是如此。

如果开启,要注意合理控制缓存空间大小, 一般来说其大小设置为几十 MB 比较合适 。

此外,还可以通过 sql_cache 和 sql_no_cache 来控制某个查询语句是再需要进行缓存 :

select sql_no_cache count(*) from table_user ;

丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:MySQL查询缓存的使用
喜欢 (0)
[247507792@qq.com]
分享 (0)
多啦H梦
关于作者:
热爱开源,热爱分享,谢谢大家的资瓷!

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00