2011-01-15 10 views
1

Ich mache eine GPS-App, die 200 Millionen Datensätze in einer Tabelle behandelt. Mein erster Gedanke ist, die Tabelle in mehrere Tabellen wie position_1, position_2, ... aufzuteilen und die Daten zu teilen.mehrere Tabellen sharding mit mysql

Meine Frage ist: hat es irgendeine Leistungssteigerung mit MySQL (innodb)?

+2

1 Tabelle, 500 + Millionen Zeilen, Abfrage Laufzeit 0,02 Sekunden - http://Stackoverflow.com/questions/4419499/mysql-nosql-help-me-to-choose-the-right-one-on-a-/ 4421601 # 4421601 –

Antwort

1

Das eigentliche Problem besteht darin, die relevanten Indizes zu erstellen, die den Abfragen entsprechen.
Die InnoDB table size itself (siehe InnoDB spezifischen Kapitel) sollte kein Problem sein.

Solange die Indizes korrekt sind, wird die Anwendungsentwicklung und -wartung mit einer einzigen Tabelle viel einfacher.

0

Sie müssen nicht mehrere Tabellen erstellen, aber Sie möglicherweise erhalten eine Leistungssteigerung durch Partitionieren der einzelnen Tabelle auf verschiedenen Datenträgern. MySQL unterstützt tatsächlich das Praxen.

http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html

Ich würde vorschlagen, Sie versuchen, die Leistung zu messen mit und ohne partitionieren, bevor Sie sich entscheiden, es zu benutzen.