Verwalten von „Listen“-Einträgen in SQL-Tabellen: Abfragen vs. normalisierte Daten
Bei der Arbeit mit SQL-Tabellen ist es üblich, Daten in zu speichern entweder eine einzelne Zeile mit einem „Listen“-Eintrag oder eine separate Zeile für jeden Eintrag. Bei dieser Frage wird untersucht, welcher Ansatz hinsichtlich der Abfragezeit für einen bestimmten Anwendungsfall effizienter ist.
Aktueller Ansatz mit „Listen“-Eintrag
Der Fragesteller verfügt über ein vorhandenes SQLite Tabelle mit Zeilen, die wie folgt aussehen:
value, "a,b,c,d,e,f,g,h,i,j", value3, value4
wobei Abfragen mithilfe von nach Paarungen von „Wert“ und „%b%“ suchen LIKE-Operator.
Vorgeschlagener Ansatz mit normalisierten Daten
Um die Abfrageeffizienz zu verbessern, schlägt das Poster die Erstellung einer neuen Tabelle vor, in der jede Zeile eine Permutation darstellt:
value, a, value3, value4 ... value, j, value3, value4
Abfragen würden dann den „="-Operator verwenden, um nach „Wert" und zu suchen „b.“
Vorteile der Normalisierung
Die Antwort auf diese Frage empfiehlt dringend die Verwendung einer normalisierten Tabellenstruktur. Dies liegt daran, dass LIKE „%something%“-Abfragen keine Indizes verwenden können, was zu langsameren Suchzeiten führt. Darüber hinaus verstößt die Verwendung einer „Listen“-Spalte in einem RDBMS gegen Best Practices.
Zu den Vorteilen der Normalisierung gehören:
Durch die Normalisierung der Daten können Sie die Leistung weiter verbessern, indem Sie doppelte Einträge entfernen und Beziehungen zwischen Tabellen erstellen, was komplexere und effizientere Abfragen ermöglicht.
Das obige ist der detaillierte Inhalt vonSoll ich Listen in einer einzelnen SQL-Spalte speichern oder meine Daten für schnellere Abfragen normalisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!