阿亮随手记:MySQL移除查询缓存、子查询优化深分页、自增主键溢出、索引失效依旧是记录一些小知识点查询缓存的原理: 把一条完全一样的 SQL 的结果集缓存到服务层,下次直接命中就返回,不用再执行。 但它有巨大缺陷,所以 8.0 直接删掉了: 1. 缓存失效太频繁,命中率极低 只要表有任何写入(insert/update/delete),这个表的所有查询缓存全部失效。 互联网业务写多读多,缓存刚建就失效,基本白忙活。 2. 维护开销巨大,反而拖慢性能 要维护缓存的哈希表、锁、清理、淘汰。 高并发下,查询缓存的互斥锁(mutex)会成为瓶颈,甚至越开越慢。 3. 使用限制非常多 语句