sql >> Databasteknik >  >> RDS >> Mysql

Förklara detta minnesförbrukningsmönster i Amazon RDS/Mysql?

MySQL upprätthåller en cache med nyligen använda tabeller, frågor och resultat i minnet för att ge snabbare resultat. Till exempel, om du frågar "välj * från företag där id =1" från en klient 1 miljon gånger, behöver bara den första frågan gå till disken, nästa 999 999 kommer direkt från RAM-cachen. Det finns ingen anledning för MySQL att förfalla denna cache förrän den vet att den behöver mer minne, så den sparar saker tills den behöver frigöra RAM-minne för annat arbete eller oftare använda resultat.

Jag gör inte anspråk på att vara en expert - jag förstår att DB-frågecacheoptimering är en mycket komplex och djupgående vetenskap. Programmerare på Oracle, Microsoft och andra har ägnat år och år åt att utarbeta det bästa sättet för cacheutrymmet att hanteras, så det är svårt att förutse utifrån.




  1. Är mysql count(*) mycket mindre effektivt än count(specific_field)?

  2. SQLite VISA TABELLER Motsvarande

  3. Långsam ELLER-sats i postgresql

  4. WHERE-klausul före INNER JOIN