Mysql优化5:查询缓存

1.1 查看并开启查询缓存
一条查询sql语句可能获得很多数据,还会消耗一定的时间,如果该条sql语句被频繁执行获得数据且这些数据不经常被改动,我们可以把执行结果给缓存起来。
查看缓存:

show variable like `query_cache%`;

会看到query_cache_size的值为0,意思是没有缓存空间。
开启缓存:
set global query_cache_size=64*1024*1024;
将缓存空间设置为64M。
这时候会把查询的第一条记录给缓存起来(第一次查询没有缓存)。

1.2缓存失效
数据表和数据有变动,那么缓存会失效,改动后的第一次查询没有缓存,但是之后的查询依旧有缓存。

1.3 什么情况下不会使用缓存
sql语句有变动的信息就不适用缓存。
例如:有时间信息,随机数。
select *,now() from user where id =123;
select * from user order by rand() limit 10;

1.4 生成多个缓存
注意:获得相同结果的sql语句,如果有空格、大小写等内容不同,那么会分别缓存。

1.5 不进行缓存
针对特殊语句不进行缓存的做法:

select sql_no_cache * from user where id = 123;

1.6 查看缓存状态

show status like `Qcache%`;

会看到一个Qcache_free_memory,后面的value值就是剩下的缓存空间。

1.7 清空缓存

reset query cache;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值