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;

你可能感兴趣的:(mysql,个人笔记)