Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Partitionierung / Sharding / Splitting - wie geht es weiter?

Sie werden definitiv auf Probleme mit dieser 42-GB-Tabelle stoßen, sobald sie nicht mehr in den Speicher passt. Sobald es nicht mehr in den Speicher passt, nimmt die Leistung extrem schnell ab. Eine Möglichkeit zum Testen besteht darin, diese Tabelle auf einem anderen Computer mit weniger RAM abzulegen und zu sehen, wie schlecht sie abschneidet.

Das ist falsch. Die Partitionierung (entweder über die Funktion in MySQL 5.1 oder die gleiche Sache mit MERGE-Tabellen) kann erhebliche Leistungsvorteile bieten, selbst wenn sich die Tabellen auf demselben Laufwerk befinden.

Nehmen wir als Beispiel an, dass Sie SELECT-Abfragen für Ihre große Tabelle mit einem Datumsbereich ausführen. Wenn die Tabelle vollständig ist, wird die Abfrage gezwungen, die gesamte Tabelle zu durchsuchen (und bei dieser Größe kann sogar die Verwendung von Indizes langsam sein). Der Vorteil der Partitionierung besteht darin, dass Ihre Abfragen nur auf den Partitionen ausgeführt werden, auf denen dies unbedingt erforderlich ist. Wenn jede Partition 1 GB groß ist und Ihre Abfrage nur auf 5 Partitionen zugreifen muss, um sich selbst zu erfüllen, ist die kombinierte 5-GB-Tabelle für MySQL viel einfacher zu handhaben als eine Monsterversion mit 42 GB.

Eine Sache, die Sie sich fragen müssen, ist, wie Sie die Daten abfragen. Wenn die Möglichkeit besteht, dass Ihre Abfragen nur auf bestimmte Datenblöcke zugreifen müssen (z. B. einen Datumsbereich oder einen ID-Bereich), wird sich eine Partitionierung als vorteilhaft erweisen.

Ich habe gehört, dass es bei der Partitionierung von MySQL 5.1 immer noch einige Fehler gibt, insbesondere im Zusammenhang mit der Auswahl des richtigen Schlüssels durch MySQL. MERGE-Tabellen können die gleiche Funktionalität bieten, obwohl sie etwas mehr Overhead erfordern.

Hoffe, das hilft ... Viel Glück!