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

Leistung von MySQL JOIN für 1 große Tabelle und mehrere kleine Tabellen

Da es sich um eine "Eins-zu-Viele"-Beziehung handelt, würde ich sie in einer separaten Tabelle speichern. Der SQL Server-Abfrageoptimierer (unter der Haube) kann die 250 Datensätze schnell genug analysieren, sodass dies kein Problem sein sollte. Je nach Länge der Werte in der kleineren Tabelle sparen Sie außerdem Speicherplatz, indem Sie sie nicht hunderte Millionen Mal zusätzlich speichern. Wenn die Berichtsleistung jedoch von größter Bedeutung ist, können Sie sie in einer „flachen“ Tabelle speichern – wie eine Data Warehouse-Struktur, ohne die Verknüpfungen. Das geht definitiv schneller, aber Sie würden Speicherplatz und Ihre gut strukturierte relationale Datenbank opfern.

Alles in allem würde ich mich für Option 1 entscheiden. Aber Sie sollten in der Lage sein, die Daten problemlos in einer neuen Tabelle mit dem Format von Option 2 zu speichern - Abfragen für beide - und dann die Leistung selbst zu messen. Ich gehe davon aus, dass dies kein großer Unterschied sein wird, insbesondere angesichts der Kapazität Ihrer kleineren Tische.