最近在看了小林coding的MySQL解決緩存污染問題(https://mp.weixin.qq.com/s/AvxPwQYi78nyfsALgzYNDQ)的時候出現(xiàn)了一個疑問。MySQL為了解決緩存污染,防止批量數(shù)據(jù)讀取或者全表掃描的時候加載大量數(shù)據(jù)頁導(dǎo)致熱點數(shù)據(jù)緩存被淘汰的問題。提高了數(shù)據(jù)頁進入YOUNG區(qū)域的門檻。只有在OLd區(qū)域內(nèi)的數(shù)據(jù)在一定時間后再次被訪問的時候才會放入YOUNG區(qū)域。那么我的疑問是,MySQL在加載數(shù)據(jù)頁的時候,是先將所有的數(shù)據(jù)頁都先放在OLD區(qū)域嗎?還是說只有在加載大量數(shù)據(jù)的時候才會出現(xiàn)這種情況,少量數(shù)據(jù)的時候,會直接將數(shù)據(jù)頁放入YOUNG區(qū)域。我咨詢了豆包和deepseek兩個模型,給我的答案截然相反,圖如下。----------------------------------下午翻了官方文檔文檔中提到,當(dāng)一個頁讀入緩沖區(qū)的時候,會先加入到old區(qū)的頭部默認情況下,查詢讀取到的數(shù)據(jù)會被立即放入young區(qū)域的頭部,后面就說了緩存污染的情況