Hallo,
ich habe aktuell 38 Millionen Datensätze in einer MySQL-Datenbank zu speichern, jeder Datensatz hat 4 Felder und ca. 70 Zeichen/"bytes" insgesamt.
das ist kein prinzipielles Problem.
Nun würde mir hier, wenn ich das alles in einer Tabelle speichere, vermutlich alles abrauchen
Nein.
(schon bei 1 Million Datensätzen in einer Tabelle komme ich auf einem Doppel-Quadcore bei 256 MB RAM-Zuweisung pro Script bei einer einfachen "SELECT a,b,c FROM tabelle WHERE id = '123'"-Abfrage auf ca. 4-6 Sekunden Abfragedauer (Indizies gesetzt)...
dann machst Du etwas falsch. Vermutlich solltest Du die Konfiguration Deines MySQL-Servers ändern. Siehe dazu http://dev.mysql.com/doc/refman/5.0/en/option-files.html#option-files-preconfigured.
Selbst eine binäre Suche benötigte bei läppischen 38 Millionen Datensätzen (und einem UNIQUE-Index) nur 26 Suchoperationen, um einen Datensatz zu finden. 26 Suchoperationen benötigen keine Sekundenzeiten. Was sagt EXPLAIN?
Ich werde das Ganze nun also auf 380 Einzeltabellen verteilen und da kommt dann auch schon meine Frage ins Spiel:
Das ist so ziemlich die schlechteste Idee, die man in solchen Fällen haben könnte.
Freundliche Grüße
Vinzenz