MySQL 查询缓存

云惠网小编 2021年6月17日09:32:06
评论
381字阅读1分16秒
摘要

MySQL 拿到一个查询请求后,会先看看之前有没有执行过这条语句,如果执行过,则直接从查询缓存中取之前查询的结果即可,但大多情况不建议使用 MySQL 的查询缓存,因为弊大于利。
因为查询缓存的失效非常频繁,只要对一个表进行更新,那么这个表的所有查询缓存将会全部被清除,所以命中率并不会很好,除非你有一张静态的表,不会改变他的数据,或者很久才会更新一次。比如系统配置表,才适合使用这个查询缓存。
还有一个原因是因为,现在有 Redis, MemoryCache 等专门用来做缓存的应用,他们对缓存的处理会更优,而且 MySQL 服务器的资源通常都比较宝贵,所以不推荐使用 MySQL 的查询缓存。
查看查询缓存状态:

1
show variables like ‘%query_cache_type%’;
显式指定使用查询缓存:

1
select SQL_CACHE * FROM user where ID = 10;

广告也精彩

MySQL 拿到一个查询请求后,会先看看之前有没有执行过这条语句,如果执行过,则直接从查询缓存中取之前查询的结果即可,但大多情况不建议使用 MySQL 的查询缓存,因为弊大于利

因为查询缓存的失效非常频繁,只要对一个表进行更新,那么这个表的所有查询缓存将会全部被清除,所以命中率并不会很好,除非你有一张静态的表,不会改变他的数据,或者很久才会更新一次。比如系统配置表,才适合使用这个查询缓存。

还有一个原因是因为,现在有 Redis, MemoryCache 等专门用来做缓存的应用,他们对缓存的处理会更优,而且 MySQL 服务器的资源通常都比较宝贵,所以不推荐使用 MySQL 的查询缓存。

查看查询缓存状态:

1
show variables like '%query_cache_type%';

显式指定使用查询缓存:

1
select SQL_CACHE * FROM user where ID = 10;
腾讯云618
云惠网小编
MySQL 索引 java

MySQL 索引

索引 数据库的索引是一个要点, 无论是面试还是在工作中, 这个知识点都很常会用到, 你可能只是用过索引, 知道加了索引可以提高查询的性能, 但不知道为什么这样, 今天我们一起来详细...
初识 redo log 和 binlog java

初识 redo log 和 binlog

redo log InnoDB 存储引擎是以页为单位来管理存储空间的, 我们的增删改查操作本质上都是在访问页面, 如读取一条数据, 会把这个数据所在的页加载到内存中, 而不仅仅是这...
MySQL 连接 java

MySQL 连接

进行连接 使用数据库的第一步是连接,连接命令为: 1 mysql -u$username -h$host -P$port -p 然后输入密码就行了,不推荐在 -p 的后面输入密码,...
腾讯云618

发表评论