MySQL的查询缓存功能何时该开启


MySQL的查询缓存功能何时该开启


背景描述

查询缓存(Query Cache,简称QC),存储SELECT语句及其产生的数据结果。

适用场景

用于频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变化的信息。

由于查询缓存需要缓存最新数据结果,因此表数据发生任何变化(insert、update、delete或其他可能产生数据变化的操作),都会导致查询缓存被刷新。因而,对于一个更新频率非常低而只读查询频率非常高的场景下,打开查询缓存还是比较有优势的。

不适用场景

查询缓存严格要求2次SQL请求要完全一样,包括SQL语句,连接的数据库、协议版本、字符集等因素都会影响。下面为查询缓存不适用的几个场景:

  1. 子查询;
  2. 过程、函数、触发器、event中调用的SQL,或者引用到这些结果的;
  3. 查询中涉及一些特殊函数时,例如:BENCHMARK()、CURDATE()、CURRENT_TIME()、CURRENT_TIMESTAMP()、NOW()、SLEEP()、CONNECTION_ID()、CURRENT_DATE()、CURRENT_USER()、PASSWORD()、RAND()、UUID()、ENCRYPT()、LAST_INSERT_ID()等等;
  4. 查询涉及到mysql,information_schema或performance_schema。
  5. 类似SELECT…LOCK IN SHARE MODE、SELECT…FOR UPDATE、SELECT..INTO OUTFILE/DUMPFILE、SELECT * FROM ... WHERE autoincrement_col IS NULL的查询;
  6. SELECT执行计划用到临时表;
  7. 未引用任何表的查询,例如SELECT 1+2;
  8. 查询产生了告警(warnings);
  9. SELECT语句中存在SQL_NO_CACHE关键字;
  10. 涉及到分区表。

可见,使用查询的缓存的限制非常多。当使用场景中以只读为主,很少有更新的情况时,再考虑 开启查询缓存

开启查询缓存

设置选项query_cache_type = 1 ,同时设置query_cache_size = 67108864;

注:query_cache_size的值设置在100MB以内即可。在MySQL里查询缓存是由一个全局锁在控制,每次更新查询缓存的内存块都需要进行锁定。

关闭查询缓存

设置选项query_cache_type = 0,同时设置query_cache_size = 0。




About Me

........................................................................................................................

● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文在itpub、博客园、CSDN和个人微 信公众号( DB宝)上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文博客园地址: http://www.cnblogs.com/lhrbest

● 本文CSDN地址: https://blog.csdn.net/lihuarongaini

● 本文pdf版、个人简介及小麦苗云盘地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 数据库笔试面试题库及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA宝典今日头条号地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

........................................................................................................................

● QQ群号: 230161599 、618766405

● 微 信群:可加我微 信,我拉大家进群,非诚勿扰

● 联系我请加QQ好友 646634621 ,注明添加缘由

● 于 2020-05-01 06:00 ~ 2020-05-30 24:00 在西安完成

● 最新修改时间:2020-05-01 06:00 ~ 2020-05-30 24:00

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

........................................................................................................................

小麦苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麦苗出版的数据库类丛书http://blog.itpub.net/26736162/viewspace-2142121/

小麦苗OCP、OCM、高可用网络班http://blog.itpub.net/26736162/viewspace-2148098/

小麦苗腾讯课堂主页https://lhr.ke.qq.com/

........................................................................................................................

使用 微 信客户端扫描下面的二维码来关注小麦苗的微 信公众号( DB宝)及QQ群(DBA宝典)、添加小麦苗微 信, 学习最实用的数据库技术。

........................................................................................................................

欢迎与我联系

 

 



请使用浏览器的分享功能分享到微信等