Was sind die Einschränkungen der Implementierung der MySQL-NDB-Cluster?
Ich umsetzen will, NDB Cluster für MySQL Cluster 6. Ich möchte es für sehr große Daten-Struktur mit mindestens 2 Millionen Datensätze.
Ich wissen will ist, ob es irgendwelche Einschränkungen in der Umsetzung von NDB cluster. Zum Beispiel, RAM-Größe, Anzahl der Datenbanken, oder die Größe der Datenbank für NDB cluster.
Du musst angemeldet sein, um einen Kommentar abzugeben.
2 Millionen-Datenbanken? Ich asssume meintest du "Zeilen".
Sowieso, über Grenzen: eines der wichtigsten Dinge im Auge zu behalten ist, dass NDB/MySQL-Cluster ist nicht ein Allzweck-Datenbank. Vor allem, join-Operationen, aber auch Unterabfragen und Reichweite opertions (Anfragen wie: Bestellungen, die zwischen heute und vor einer Woche), kann deutlich langsamer sein als das, was Sie erwarten könnte. Dies ist zum Teil aufgrund der Tatsache, dass die Daten verteilt über mehrere Knoten. Obwohl einige Verbesserungen vorgenommen wurden, Join kann die Leistung immer noch sehr enttäuschend.
Auf der anderen Seite, wenn Sie benötigen, um mit vielen (möglichst kleine) gleichzeitige Transaktionen (in der Regel single row updates/inserts/löschen-lookups durch primary key) und Sie mangage zu halten alle Ihre Daten im Speicher, dann kann es eine sehr skalierbare und performante Lösung.
Sollten Sie sich Fragen, warum Sie wollen, dass cluster. Wenn Sie wollen einfach nur Ihre normale Datenbank, die Sie jetzt haben, außer mit zusätzlichen 99,999% Verfügbarkeit, dann werden Sie möglicherweise enttäuscht. Sicherlich MySQL-cluster bieten Ihnen mit großer Verfügbarkeit und uptime, aber die Auslastung Ihrer app möglicherweise nicht sehr gut geeignet für die thtings cluster gut ist. Plus Sie verwenden möglicherweise eine andere Lösung für hohe Verfügbarkeit zur Erhöhung der Verfügbarkeit Ihrer traditionellen Datenbank.
BTW - hier ist eine Liste von Einschränkungen gemäß den doc: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-limitations.html
Aber was auch immer Sie tun, versuchen Sie out-cluster finden, wenn seine gut für Sie. MySQL cluster ist nicht "MySQL + 5 Neunen". Finden Sie heraus, wenn Sie versuchen.
NDB cluster kommt mit zwei Arten von Speicher-Optionen.
1.In-Memory-Speicher.
2.Disk-Speicher.
NDB eingeführt, wie in-memory-Daten-Speicherung und-in der version 7.4(MYSQL 5.6) ab begann die Unterstützung Festplattenspeicher.
aktuellen version 7.5(MySQL 5.7) unterstützt disk-Speicher und in diesem Fall gibt es keine Größenbeschränkungen, wie Daten befinden sich in der Festplatte und limit hängen Speicherplatz auf der Festplatte verfügbar mit Ihnen.
Disk-Storage-Konfigurationen - https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-disk-data-symlinks.html
In Speicher in den NDB-cluster ist auch ziemlich ausgereift und Sie können festlegen, Speicher-Auslastung im Knoten management config.ini-Datei.
Beispiel -
DataMemory=3072M
IndexMemory=384M
in einem durchschnittlichen Tisch(abhängig von Daten in Spalten gespeichert) Gesamt db Größe sollte weniger als 1 GB, die können einfach konfiguriert werden.
Hinweis - meine eigene Implementierung, die ich konfrontiert, einer performance-Herausforderung als Leistung der NDB verschlechtert sich mit Zunehmender Anzahl der Zeilen in der Tabelle.
Unter hoher Last Parallelität Lesen fällt mit der Anzahl der steigenden Reihe.
Stellen Sie sicher, dass Sie nicht gehen, für full table scan, und stellen Sie ausreichend where-Klausel-Prädikat.
Für die ordnungsgemäße Erfüllung definieren sekundären index richtig, wie pro Ihre query-Muster.
Die Definition sekundärer index wird wiederum erhöhen den Speicherverbrauch so planen Sie Ihre query-Muster-und Speicher-Ressourcen entsprechend.