MySQL Cluster enthält in den Versionen 5.0.3-beta und folgende eine Reihe von neuen Features, die sicherlich interessant sein werden:
Pushdown-Bedingungen: Betrachten Sie folgende Anfrage:
SELECT * FROM t1 WHERE non_indexed_attribute = 1;
Diese Anfrage wird einen vollständigen Tabellenscan
ausführen und die Bedingung wird in den Datenknoten des
Clusters ausgewertet. Daher ist es nicht nötig, die
Datensätze zur Auswertung durchs Netzwerk zu schicken. (Es
werden also Funktionen und nicht Daten transportiert.) Bitte
beachten Sie, dass dieses Feature gegenwärtig nach
Voreinstellung deaktiviert ist (da die gründlicheren Tests
noch nicht abgeschlossen sind), aber in den meisten Fällen
bereits funktionieren müsste. Dieses Feature kann mit der
Anweisung SET engine_condition_pushdown =
On
aktiviert werden. Alternativ können Sie
mysqld so laufen lassen, dass das Feature
eingeschaltet wird, indem Sie den MySQL Server mit der
Option --engine-condition-pushdown
starten.
Ein Hauptvorteil dieser Änderung besteht darin, dass Anfragen parallel ausgeführt werden können. So laufen Anfragen auf nichtindizierten Spalten unter Umständen fünf- bis zehnmal schneller als zuvor, und dies mal der Anzahl der Datenknoten, da mehrere CPUs die Anfrage parallel bearbeiten können.
Mit dem Befehl EXPLAIN
können Sie
ermitteln, wann Pushdown-Bedingungen verwendet werden. Siehe
auch Abschnitt 7.2.1, „EXPLAIN
-Syntax (Informationen über ein
SELECT
erhalten)“.
Weniger Platzbedarf
IndexMemory
: In MySQL
5.1 belegt jeder Datensatz ungefähr 25 Byte
Index Memory und jeder eindeutige Index 25 Byte pro
Datensatz (und zusätzlich noch einigen Platz im Data
Memory, da diese Datensätze in einer separaten Tabelle
gespeichert werden). Das liegt daran, dass der
Primärschlüssel nun nicht mehr im Index Memory gespeichert
wird.
Der Anfragen-Cache ist für MySQL Cluster aktiviert: Mehr über die Konfiguration und Nutzung des Anfragen-Caches erfahren Sie unter Abschnitt 5.14, „MySQL-Anfragen-Cache“.
Neue Optimierungen: Eine Optimierung verdient eine gesonderte Erwähnung: Nämlich die, dass nun in manchen Anfragen ein Batched Read Interface verwendet wird. Betrachten Sie zum Beispiel folgende Anfrage:
SELECT * FROM t1 WHERE primary_key
IN (1,2,3,4,5,6,7,8,9,10);
Diese Anfrage wird zwei- bis dreimal schneller bearbeitet als in den früheren Versionen von MySQL Cluster, da alle zehn Schlüssel-Lookups in einem einzigen Schwung statt immer nacheinander übersandt werden.
Obergrenze für einige
Metadatenobjekte: In MySQL 5.1 kann jede
Cluster-Datenbank bis zu 20.320 Metadatenobjekte enthalten,
einschließlich Datenbanktabellen, Systemtabellen, Indizes
und BLOB
s.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.