2010-12-27 10 views
0

Ich muss ein neues Tabellensystem erstellen, es wird eine ID und 10 varchars(255) pro ID speichern. Mehr muss es nicht speichern. Anders als das offensichtliche Einfügen/Löschen/Aktualisieren nur für ganze Zeilen ist die einzige andere Abfrage, die ausgeführt wird, eine SELECT * FROM table WHERE id='id'. 7 Millionen Datensätze.MYSQL Geschwindigkeit dieser Abfrage und optimierte Tabellenstruktur

Ich habe 2 Strukturen kam ich mit, das ist:

(1) - einzelne Tabelle, id, dann 10 varchars, schließt sich nicht, nichts Besonderes, ist id Primärschlüssel, einfach select *.

(2) - 2 Tabellen, zuerst hat ID, dann 10 ganzzahlige Elemente, Sekunde hat integer(auto increment) und die varchars. Dies würde einen Join verwenden. Daher würde ich 10 Joins pro Abfrage schätzen.

Offensichtlich 2 ist besser als eine formale Struktur und für spätere Tabelle Strukturänderungen, ABER, in Bezug auf SPEED der Abfrage allein, was ist besser?

Antwort

1

Wenn Sie immer genau 10VARCHAR Felder zu speichern und jede VARCHAR hat ihre eigene Bedeutung (wie es ist immer ein Name, oder immer eine Adresse etc.), dann erstellen Sie einfach eine Tabelle mit 10 Feldern.

Ihre zweite Lösung heißt EAV (entity-attribute-value), die meistens für dünn besetzte Matrizen verwendet wird (wenn Sie viele mögliche Attribute haben, von denen nur wenige für eine gegebene Entität gesetzt sind). Es ist skalierbar und wartbar, aber für die Abfrage wie Ihres weniger effizient.

+0

um, danke, aber wer wird schneller sein? – David19801

+0

@David: Erste (mit allen Werten in einer einzelnen Zeile). "Weniger effizient" in der EAV-Beschreibung bedeutet "langsam" :) – Quassnoi

0

definitiv in Bezug auf die Geschwindigkeit der erste ist besser. Joins sind wirklich langsam auf großen Tischen

+1

Kann ich eine Bestätigung bekommen, dass "Joins an großen Tischen wirklich langsam sind". Ich indexiere die ID-Spalte auf Tabelle1 und Integer-Spalte auf Tabelle2 – David19801

+0

Wenn Sie sich vorstellen, was in Joins passiert, ist klar, warum sie in großen Tabellen langsam sind. –

Verwandte Themen