Buffer Pool
Der eigene Cache der Datenbank für Datenseiten im RAM. Fast jede Performance-Optimierung läuft im Kern darauf hinaus, die richtigen Seiten dort zu halten, statt sie von der Platte nachzuladen.
Lesezugriffe laufen immer über den Pool: Wird eine fehlende Seite gebraucht, wird sie eingelesen, und eine andere weicht nach einer LRU-ähnlichen Regel. Schreibzugriffe treffen zunächst die Seite im Speicher, die dadurch "dirty" wird, und landen erst später bei einem Checkpoint auf der Platte — die Dauerhaftigkeit garantiert in der Zwischenzeit das Write-Ahead-Log. In MySQL heißt die Einstellung innodb_buffer_pool_size, Faustregel: rund 70 Prozent des Server-Speichers. PostgreSQL nennt sein Pendant shared_buffers, verlässt sich aber bewusst zusätzlich auf den Seiten-Cache des Betriebssystems und wird deshalb niedriger eingestellt. Die entscheidende Kennzahl ist die Trefferquote — welcher Anteil der Lesezugriffe die Platte gar nicht erst berühren musste.