MySQL 8 禁用当前会话的查询缓存

Jim*_*mix 3 session caching system-variable mysql-8.0

如何在 MySQL8 中禁用当前会话的缓存查询结果?

系统变量的文档有很多与缓存有关的变量,但其中大多数已被弃用,我找不到任何可用于禁用查询缓存的变量。
我有兴趣禁用禁用命令后的所有语句的缓存。有什么办法可以做到这一点吗?

小智 5

MySQL 8 中删除了查询缓存。

您可以尝试清除缓冲区,如下所述: how toclear/flush mysql innodb buffer pool?

但是,将会有操作系统级磁盘缓存,以及硬件(HDD/SDD)缓存。这与我目前个人测试的结果相比有两个数量级的差异。你所提议的可能是不可能的。

我建议使用 EXPLAIN 查询,并非常仔细地考虑使用了哪些索引,涉及了多少行,是否创建临时表,并且通常要考虑 MySQL 将要执行的执行策略。

一旦您确信已经解决了性能问题,请查看它在冷启动时的表现。