开启MySQL查询缓存的方案:
1. 在my.cnf中添加如下配置并重启,开启MySQL缓存
query_cache_size=256M
query_cache_limit=10M
query_cache_type=1
query_cache_size为总缓存大小,官方推荐不要超过256M
query_cache_limit为单条查询结果的最大缓存大小,如不设置,默认为1M
query_cache_type表示缓存方式,0表示不开启缓存,1表示每条语句都开启缓存(除非指定不需要缓存),2表示如果查询语句中指定使用缓存,则进行缓存,具体见后续说明。
前摘: 本人用的是phpstudy8.0;cmd切盘之后,输入'cd phpstudy_pro\Extensions\MySQL5.7.26\bin'进入mysql运行目录, 再'mysql -u root -p'连接数据库。
2. 开启完毕后,进入MySQL命令行,输入如下命令确认各参数是否设置正确:
show variables like '%query_cache%';
3. 可用如下命令确认缓存状态:
show status like 'Qcache%';
4. 重置缓存内容:
reset query cache;
除了上述简单开启外,额外说明如下:
开启缓存后,MySQL会根据查询语句与关联表进行查询结果的缓存,一旦关联表发生变化,就会使缓存内容失效;
虽然没有试验,但据说开启缓存应该是对相关表的插入更新效率是有一定影响的;
如前所述,query_cache_type=2时,只缓存明确需要缓存的SQL查询(在SELECT后加上SQL_CACHE),这样可以避免滥用缓存, 根据实际需要进行优化;当query_cache_type=1时,也可以通过SQL_NO_CACHE来关闭查询缓存。具体方式如下:
SELECT SQL_CACHE ... FROM ... WHERE ...
SELECT SQL_NO_CACHE ... FROM ... WHERE ...
总的说来,在部分变化频率较低的表对应的查询语句中,开启Query Cache,对性能会有一定提升,其余情况下,个人感觉还是尽量少用,遇到问题再优化。
作为一名合格的程序员不仅需要好的代码编写能力,还需要掌握服务器相关知识,下面给大家推荐腾讯云搞活动的服务器,刚开始不需要服务器配置太好,纯当练手!点击链接查看活动:https://cloud.tencent.com/act/cps/redirect?redirect=33567&cps_key=32f906e6e5f3be5e8669b35951da56fc&from=activity