MySQL houdt een cache bij van recent gebruikte tabellen, query's en resultaten in het geheugen om snellere resultaten te retourneren. Als u bijvoorbeeld 1 miljoen keer "select * from company where id =1" van een client opvraagt, hoeft alleen de eerste query naar de schijf te gaan, de volgende 999.999 komen rechtstreeks uit de in RAM-cache. Er is geen reden voor MySQL om deze cache te laten verlopen totdat het weet dat het meer geheugen nodig heeft, dus het houdt dingen bewaard totdat het RAM moet vrijmaken voor ander werk of vaker gebruikte resultaten.
Ik beweer niet dat ik een expert ben - ik begrijp dat optimalisatie van DB-querycache een zeer complexe en diepgaande wetenschap is. Programmeurs bij Oracle, Microsoft en anderen hebben jarenlang de beste manier gevonden om de cacheruimte te beheren, dus het is moeilijk van buitenaf te voorspellen.