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

Entitätsattributwertmodell – Performance-Alternative?

Zuerst , manchmal macht dieses Modell das Abfragen von Daten viel einfacher. Ich habe vor ein paar Tagen eine Frage hier gestellt und einige Benutzer schlugen vor, warum ich mein Modell nicht in ein 1NF-Formular geändert habe, um das Abfragen von Daten zu vereinfachen. Erst als sie merkten, dass ich bei diesem Design feststeckte, gaben sie einige Antworten auf die Frage. Der Punkt ist, ich hatte das Glück, nur 12 Spalten zusammenzufassen; Andernfalls, wenn meine Tabelle 300 Spalten enthält, hat sich vielleicht kein Benutzer die Mühe gemacht, eine Abfrage für dieses Problem zu schreiben. :-)

Zweiter , manchmal ist die Implementierung dieses Entwurfs aufgrund einiger Einschränkungen, die von Natur aus durch Datenbanken auferlegt werden, einfacher. Wenn Ihr meta_key Werte einige längere Werte enthalten, die länger als 30 Zeichen sind, entweder müssen Sie die Werte kürzen und die Zuordnung irgendwo vornehmen, oder dies wäre möglicherweise die einzige Option, die Sie haben könnten.

Endlich , Leistung ist sehr wichtig; das ist richtig. Aber andererseits gibt es bestimmte Techniken, die Sie anwenden können, um die Leistung zu verbessern; B. durch Erstellen geeigneter Indizes, Partitionieren von Tabellen usw.

In diesem Fall sind die Tabellengrößen sehr klein. Wenn Ihre Abfragen also nicht sehr kompliziert sind, wie z. B. umfangreiche Berechnungen und komplizierte Verknüpfungen und Aggregationen, und wenn die Anwendung nicht empfindlich auf kleine Zeitbruchteile reagiert, würden Sie bei Verwendung dieses Modells meiner Meinung nach nicht unter der Leistung leiden.

Am Ende , wenn Sie sich immer noch zu viele Sorgen um die Leistung machen, würde ich vorschlagen, beide Modelle zu erstellen, sie mit einigen zufälligen oder realen Daten zu füllen und die Plankosten zu analysieren, um zu sehen, welches Modell Ihren Anforderungen besser entspricht.