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

MySQL:mehrere Tabellen oder eine Tabelle mit vielen Spalten?

Jedes Mal, wenn Informationen eins zu eins sind (jeder Benutzer hat einen Namen und ein Passwort), ist es wahrscheinlich besser, sie in einer Tabelle zu haben, da dies die Anzahl der Verknüpfungen reduziert, die die Datenbank zum Abrufen von Ergebnissen durchführen muss. Ich denke, einige Datenbanken haben ein Limit für die Anzahl der Spalten pro Tabelle, aber im Normalfall würde ich mir darüber keine Gedanken machen, und Sie können es später immer noch aufteilen, wenn Sie es brauchen.

Wenn die Daten One-to-Many sind (jeder Benutzer hat Tausende von Zeilen mit Nutzungsinformationen), sollten sie in separate Tabellen aufgeteilt werden, um doppelte Daten zu reduzieren (duplizierte Daten verschwenden Speicherplatz, Cache-Speicher und erschweren die Wartung der Datenbank). ).

Vielleicht finden Sie den Wikipedia-Artikel zur Datenbanknormalisierung interessant, da es ausführlich auf die Gründe dafür eingeht:

Die Datenbanknormalisierung ist der Prozess der Organisation der Felder und Tabellen einer relationalen Datenbank, um Redundanz und Abhängigkeit zu minimieren. Die Normalisierung umfasst normalerweise das Aufteilen großer Tabellen in kleinere (und weniger redundante) Tabellen und das Definieren von Beziehungen zwischen ihnen. Das Ziel besteht darin, Daten zu isolieren, sodass Ergänzungen, Löschungen und Änderungen eines Felds in nur einer Tabelle vorgenommen und dann über die definierten Beziehungen durch den Rest der Datenbank weitergegeben werden können.

Denormalisierung ist auch etwas zu beachten, da es Fälle gibt, in denen das Wiederholen von Daten besser ist (da es den Arbeitsaufwand reduziert, den die Datenbank beim Lesen von Daten leisten muss). Ich empfehle dringend, Ihre Daten zu Beginn so normalisiert wie möglich zu machen und nur zu denormalisieren, wenn Sie Leistungsprobleme bei bestimmten Abfragen bemerken.