Sven Rautenberg: MySQL-Datenbank im Arbeitsspeicher bereithalten

Beitrag lesen

Moin!

ich habe keine Ahnung, ob sowas moeglich ist, darum einfach mal die Frage an die Spezialisten: ich entwickle gerade eine DB-Tabelle, die praktisch keine schreibenden sondern sehr viele lesende Zugriffe haben wird. Dafuer ist sie um die 500 MB gross (zumindest als CSV) und umfasst ca. 6 Millionen Datensätze.
Geht das also irgendwie, dass ich meiner DB sage, sie soll den ganzen Schmu konstant im schnelleren Arbeitsspeicher halten? Erst bei Aenderungen muesste ich den dann neu laden...

Optimiere nicht an Problemen, die du noch gar nicht hast!

Es ist derzeit deine _Vermutung_, dass die Speicherhaltung im RAM schneller sein soll.

Aber wenn du die OpenGeoDB inklusive Index & Co. immer komplett im Speicher hälst, fehlt der dir für den restlichen Betrieb des Servers. Das Betriebssystem wird dann unter Umständen RAM auslagern - und damit wäre für dich nichts gewonnen, weil die Datenbank dann doch wieder von Festplatte liest. Nur eben mit der u.U. schlechten "Optimierung" durch die RAM-Verwaltung des OS, nicht durch die datenbankoptimierte Verwaltung von MySQL.

Wenn dein Projekt soweit fertig ist, dass du tatsächlich Geschwindigkeitsprobleme _hast_ - dann solltest du das Problem analysieren und Gegenmaßnahmen ergreifen. Aber so pauschal einfach mal ein halbes Gigabyte Datenbank im Speicher halten (und das bei jedem Neustart von MySQL erneut befüllen müssen) ist keine Lösung, die man "nur mal so" anwenden sollte. Denn MySQL hält ja sowieso diverse Informationen im RAM parat.

- Sven Rautenberg

--
"Love your nation - respect the others."