原文转自: https://www.ruoguschool.com
1.如何检查MySQL数据库是否开启query cache
mysql> show variables like ‘%query_cache%’;
2.如何开启Query Cache?
MySQL配置文件中开启query cache, vim /etc/mysql/my.cnf
query_cache_size=256M
query_cache_type=1
Query Cache缓存的是对于搜索条件的整个结果集,在数据更新时会自动失效,官方建议Query Cache Size的大小设置一般不要超过256MB。
query_cache_type参数用于控制缓存的类型,注意这个值不能随便设置,必须设置为数字,可选项目以及说明如下:
选项 | 含义 |
0 | 关闭,不缓存/重新取得结果。禁用Quer yCache |
1 | 开启,缓存所有结果,除非select语句使用SQL_NO_CACHE禁用了查询缓存 |
2 | 只缓存在select语句中通过SQL_CACHE指定需要缓存的查询 |
3.如何设置query_cache_type?
query_cache_type的策略建议:
可以开启1, 然后对于insert, update频繁的表操作,select语句中加上SQL_NO_CACHE,比如订单量的记录表,页面访问量的记录表。如查询帖子的访问量:
select sql_no_cache * from wp_postmeta where meta_key=’views’
可以开启2,然后对于更新慢,查询多的表Select操作时,使用SQL_CACHE选项,比如博客网站的帖子表,由于不是每时每刻都更新,使用Query Cache的效果会很好,可以使用SQL_CACHE选项,如查询前20的帖子:
select sql_cache * from wp_posts limit 20
更多关于MySQL Query CacheFAQ参考: https://www.ruoguschool.com