
Ich habe mich gefragt, ob und in welchem Ausmaß die Verwendung von tmpfs die MySQL-Leistung verbessern könnte und wie dies erfolgen sollte. Ich würde vermuten, dies zu tun mount -t tmpfs -o size=256M /path/to/mysql/data/DatabaseName
und die Datenbank normal zu verwenden, aber vielleicht irre ich mich (ich verwende nur MyISAM-Tabellen).
Wird ein stündlicher Rsync zwischen den tmpfs die Leistung /path/to/mysql/data/DatabaseName
beeinträchtigen /path/to/mysql/data/DatabaseName_backup
? Wenn ja, wie erstelle ich ein Backup der tmpfs-Datenbank?
Ist das also eine gute Art, Dinge zu erledigen? Gibt es eine bessere Möglichkeit oder verschwende ich meine Zeit?
Antwort1
Ich habe eine ähnliche Frage beantwortetHierals jemand fragte, wie man eine MySQL-Datenbank in den Speicher lädt. Neben anderen möglichen Lösungen gibt es in MySQL eine native ENGINE, die für die meisten Situationen besser geeignet ist.
Für MyISAM-Tabellen würde Ihre vorgeschlagene Lösung funktionieren.
Rsync sollte nicht unbedingt die Leistung beeinträchtigen, könnte es aber, wenn Ihr System wirklich wenig Ressourcen hat, da eine hohe I/O-Auslastung die Systemleistung als Ganzes beeinträchtigen würde. In den meisten Fällen würde ich sagen, dass dies nicht der Fall wäre, aber die einzige Möglichkeit, sicherzugehen, ist ein Test.
Die Ramdisk-Lösung scheint mir riskant. Bei einem Stromausfall könnten Daten verloren gehen, da Ihr Rsync nicht in Echtzeit wäre. Sie könnten die Datenbank auf einen Slave replizieren, der sie auf einer Festplatte speichern könnte. Der Start von MySQL auf dem Ramdisk-Server könnte vor dem Starten der Instanz per SCP von diesem Host in die Ramdisk erfolgen.
Wenn Ihre MySQL-Instanz nicht gut optimiert wäre, würden Sie erhebliche Leistungssteigerungen feststellen. Bei einer guten Optimierung würde ich vermuten, dass die Verbesserungen geringer wären. Die einzige Möglichkeit, dies sicherzustellen, besteht in der Verwendung von Tools wieSuper Smack,MySQL-Benchmark, UndSysbenchum die Leistung zu quantifizieren.
Viel Glück.