首页 > 数据库 >MySQL 8.0 为什么会放弃查询缓存?

MySQL 8.0 为什么会放弃查询缓存?

时间:2022-12-26 13:55:27浏览次数:67  
标签:8.0 缓存 Hash SQL 查询 内存 MySQL

什么是查询缓存?

查询缓存就是将一次查询结果存储在内存中,假如下一次查询结果在内存中,就直接在内存中读取。

MySQL查询缓存原理

就是将查询SQL进行Hash处理,然后将结果存进内存,假如第二次查询SQL Hash值存在,那么直接从内存中读取,加快查询的速率。

那为什么MySQL要放弃查询缓存?

  1. 对于 Select * from stuselect * from stu 由于Hash的结果不同,所以查询缓存不会被命中,对于复杂的业务场景这种情况可能会大量发生。
  2. 查询缓存会在表增删改的情况下失效,所以查询缓存适合读多写少的场景。
  3. 对于表分区默认查询缓存关闭。
  4. 对于未命中缓存的Sql,会进行数据写入,官方统计会消耗13%的资源。
  5. 对于某些的函数,查询缓存也不会生效,比如now()

综上所述,查询缓存可能会成为MySQL的瓶颈,所以官方选择删除。

那我们需要使用查询缓存怎么办?

官方推荐了性能更好的第三方客户端ProxySQL,如果有需要可以自己研究使用。

优质博客推荐:https://blog.csdn.net/wtopps/article/details/127733437

标签:8.0,缓存,Hash,SQL,查询,内存,MySQL
From: https://www.cnblogs.com/handsometaoa/p/17005675.html

相关文章