请教 | MySQL解决的缓存污染的问题
最近在看了小林coding的MySQL解决缓存污染问题(https://mp.weixin.qq.com/s/AvxPwQYi78nyfsALgzYNDQ)的时候出现了一个疑问。MySQL为了解决缓存污染,防止批量数据读取或者全表扫描的时候加载大量数据页导致热点数据缓存被淘汰的问题。提高了数据页进入YOUNG区域的门槛。只有在OLd区域内的数据在一定时间后再次被访问的时候才会放入YOUNG区域。
那么我的疑问是,MySQL在加载数据页的时候,是先将所有的数据页都先放在OLD区域吗?还是说只有在加载大量数据的时候才会出现这种情况,少量数据的时候,会直接将数据页放入YOUNG区域。
我咨询了豆包和deepseek两个模型,给我的答案截然相反,图如下。
----------------------------------
下午翻了官方文档
文档中提到,当一个页读入缓冲区的时候,会先加入到old区的头部
默认情况下,查询读取到的数据会被立即放入young区域的头部,后面就说了缓存污染的情况
那么我的疑问是,MySQL在加载数据页的时候,是先将所有的数据页都先放在OLD区域吗?还是说只有在加载大量数据的时候才会出现这种情况,少量数据的时候,会直接将数据页放入YOUNG区域。
我咨询了豆包和deepseek两个模型,给我的答案截然相反,图如下。
----------------------------------
下午翻了官方文档
文档中提到,当一个页读入缓冲区的时候,会先加入到old区的头部
默认情况下,查询读取到的数据会被立即放入young区域的头部,后面就说了缓存污染的情况
全部评论
感觉MySQL的驱逐策略有点像LRU-K和2Q,相比起2Q加了个1s的冷却时间。应该是先进入old区,冷却一秒再访问,就会进入young区吧
相关推荐
12-02 14:44
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
10-12 19:23
重庆邮电大学 Java
敢逐云霄志:你打招呼语怎么能这么长,hr都没看下去的欲望,简明扼要说重点,就读于某某学校某某专业,26届应届毕业生,学信网可查,先后在某某公司实习过(如有),然后做过什么项目,想找一份什么样的工作,可实习几个月以上,期待您的回复。 点赞 评论 收藏
分享
点赞 评论 收藏
分享
