Frage

Im Allgemeinen ist der Engpass von RDBMS (ich bin ein MySQL -Benutzer) Leistung ist der Datenträgerzugriff. SSD bietet eine große Leistung im Vergleich zu herkömmlichen Spindelfahrten.

FRAGE: Ist es möglich, die Leistung zu verbessern, indem mehrere Laufwerke reduzierter Platz angeschlossen werden, da diese Möglichkeit mehr Köpfe zur Verfügung stehen, um Daten zu lesen?

Wie beim Austausch von 2 TB 7,2K -Drehzahl durch 4 500 GB 7,2K -Drehzahlen?

War es hilfreich?

Lösung

Dies könnte sehr von der Lagerung von der Lagerung abhängen.

Für MyISAM denke ich, dass es eine großartige Idee wäre, weil Sie Daten so zusammenhängen wie Sie möchten. Dies würde Abfragen mit Massenbetrieb und großen Scans zugute kommen. Das Toolset zum Komprimieren und Reparieren von MyISAM zur Verbesserung des Tischformats kann auch ein wenig besser zugreifen. IMHO -gleichzeitige Einsätze könnten in einer solchen Festplattenumgebung gedeihen.

InnoDB ist eine ganz andere Geschichte.

Wenn Sie haben innodb_file_per_table Deaktiviert, Daten können über IBDATA1 verteilt und somit zwischen den mehreren Festplatten verteilt werden. Sie können die Optimizierungstabelle gegen eine InnoDB -Tabelle ausführen und die Daten- und Indexseiten zusammenhängend machen. Dies kann jedoch zwei Probleme verursachen:

  1. Bringt das Ibdata1 wachsen
  2. Die Leistung im Laufe der Zeit verschlechtern

Vergessen Sie nicht die vier Arten von Daten, die sich in Ibdata1 befinden:

  • Tischmetadaten
  • Tabellendatenseiten
  • Indexdatenseiten
  • MVCC Daten

Es gibt ständiges Schreiben von MVCC -Daten zum Schutz der Datenintegrität. Es gibt auch eine konstante Interaktion mit IB_Logfile0 und IB_LogFile1 (Redo -Protokolle). Es gibt konstante Daten, die alle 10 Sekunden vom InnoDB -Pufferpool zurück zum. Insgesamt kann man mit Sicherheit sagen, dass die Verbreitung von Daten über mehrere Scheiben und die E/A-Leistung minderwertig auf die Leistungsverbesserung hinweisen können, bis es in IBDATA1 genügend Fragmentierung gibt.

Wenn nun innodb_file_per_table aktiviert ist, könnten die Dinge ein wenig chaotischer sein. Hier ist der Grund:

Sobald Sie ibdata1 aufräumen und alle InnoDB -Tabellen von Ibdata1 trennen, Sie werden eine kleinere Ibdata1 haben. Für jeden Zugriff auf eine InnoDB -Tabelle muss jedoch ständig über IBDATA1 über Tabellenmetadaten navigiert werden. Sie können die Tabellenmetadaten (ibdata1) buchstäblich nicht von der Tabelle (.ibd) semantisch trennen. Wo immer Ibdata1 lebt, muss die Festplatte I/O immer durch Ibdata1 gehen.

Gesamteffekt: Die Tabellenfragmentierung ist auf .IBD -Dateien beschränkt und kann mit optimierter Tabelle reduziert und neu organisiert werden. Es wird jedoch keine zusätzliche E/A -Leistungsverbesserung erreicht.

Was ist, wenn alle .IBD -Dateien in unterschiedliche Datenträger von Ibdata1 und Symlinks verwendet werden? Laut Percona schafft dies mehr Chaos.

FAZIT

Wenn es darum geht, mehrere Laufwerke über einen einzigen Laufwerk zu verwenden, bevorzuge ich MyISAM gegenüber InnoDB.

Andere Tipps

Ja, mehrere Laufwerke bieten dank der wunderbaren Technologie, die wir RAID bezeichnen, einen besseren Durchsatz. Für eine Datenbank möchten Sie RAID 10 (gestreifte Spiegel).

Mit 4 (n) Laufwerken würden Sie Ihre Schreibgeschwindigkeit und Vierfach (n) sequentielle Lesedurchsatz verdoppeln. Die Suchzeiten bleiben jedoch ungefähr gleich und Sie werden den halben Raum für Spiegelung verlieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top