2010-11-26 6 views
0

Ich entwickle gerade ein System, bei dem der Datenzugriff wichtig ist. Ich habe die Datenbank optimiert, so dass meine Objekte nur IDs füllen und auf Anfrage träge weitere Informationen erhalten. Die Datenbank enthält einige Millionen Datensätze und ich muss den Datenzugriff auf einige Millisekunden bei jeder Abfrage verbessern. Ich frage mich, ob es möglich ist, alles in der Datenbank beim Start zu cachen anstatt zwischenspeichern, da unsere Abfragen dynamisch erstellt werden. Wenn Sie über eine umfangreiche Speicherkapazität verfügen. Wenn ich die Datenbank dazu bringen kann, dieses Zwischenspeichern durchzuführen, würde dies die Notwendigkeit zum Zwischenspeichern auf dem Anwendungsserver beseitigen und einige Entwicklungen vereinfachen. Ich dachte daran, einen Linux-Server mit einer virtuellen Festplatte auf dem Speicher einzurichten und dann mit MySQL Replication alle auf einem separaten Server zu replizieren, so dass Sie zumindest eine Sicherungskopie haben, wenn der Server abstürzt und Ihre in mem db verloren geht :)MySQL Cache Alles

Ich möchte nicht über veraltete Objekte sorgen, also wenn jemand weiß, eine Methode, dies zu erreichen, würde es sehr geschätzt werden.

Antwort

1

Kann versuchen, die Memcached?

+0

FYI - versuchte RamDisk, die ein Diskettenlaufwerk im Speicher emuliert, das erstellt und ISO des Laufwerks heruntergefahren und lädt es beim Start. Dies schien eine Lösung mit ziemlich großen Vorteilen zu sein, aber leider wurde die Geschwindigkeit nur um etwa 5% verbessert, da die Cache-Strategien der App-Server/MySQL bereits den größten Vorteil aus dem Speicher ziehen. Dies war nur ein Geschwindigkeitsexperiment und ist definitiv keine praktikable Option für Caching. MySQL 5.5 nutzt den ihm zugewiesenen Speicher voll aus, was die Performance nach dem ersten Zugriff der Daten enorm (10-fach) verbesserte. –

Verwandte Themen