我的原创连接: MySQL8取消缓存 (qq.com)
很多人在MySQL升级到8以后甩锅说没有缓存了。我其实觉得这不对。为什么官方取消了(连给设置参数的机会也没有,不是默认关闭,而是就没有了)
还好我有个5.7,说明一下。A表ID有索引

执行一下。扫描索引4行,返回4行。
再次执行。
用到了缓存。不扫描了。
很好的功能。我以前在用他PK redis的时候是完胜的。
这个时候我更新id=2(和id1没有关系),然后再次查询id=1

你会发现,id=1无法缓存,重新读取。
也就是说缓存所在的表发生一点改变,不管是不是改的是不是被缓存的。都失效。那么如果是一个OLTP系统,这等于没用。而MySQL定位是小事务的OLTP。至少目前只有企业版的云的MySQL才有OLAP。
所以8就取消了这个这种有人说没缓存到。除非你实际使用场景,数据就几乎不写,大量读。那么可能是吃亏了,但是如果用到了索引问题也不大。看上面的数据基本都在1毫秒或者不到1毫秒也可以接受了。
