MySQL verwaltet einen Cache mit zuletzt verwendeten Tabellen, Abfragen und Ergebnissen im Speicher, um schnellere Ergebnisse zurückzugeben. Wenn Sie zum Beispiel „select * from company where id =1“ 1 Million Mal von einem Client abfragen, muss nur die erste Abfrage auf die Festplatte gehen, die nächsten 999.999 kommen direkt aus dem RAM-Cache. Es gibt keinen Grund für MySQL, diesen Cache ablaufen zu lassen, bis es weiß, dass es mehr Speicher benötigt, also speichert es Dinge, bis es RAM für andere Arbeiten oder häufiger verwendete Ergebnisse freigeben muss.
Ich behaupte nicht, ein Experte zu sein – ich verstehe die DB-Abfrage-Cache-Optimierung als eine sehr komplexe und tiefgreifende Wissenschaft. Programmierer bei Oracle, Microsoft und anderen haben Jahre und Jahre damit verbracht, den besten Weg für die Verwaltung des Cache-Speicherplatzes auszuarbeiten, daher ist es von außen schwer vorherzusagen.