4 Stimmen

Rails ActiveRecord Table Indexes - Wann sollten sie verwendet werden?

Ich habe immer wieder gehört, dass Sie Indizes zu allen Fremdschlüsseln hinzufügen sollten, an denen Sie Joins durchführen werden. Ich habe auch gehört, dass man Indizes für Felder haben sollte, für die man Abfragen durchführen will. Hat jemand eine umfassende Liste oder eine Reihe von Richtlinien, wann man Indizes hinzufügen sollte und wann nicht?

Es muss eine Größe der Tabelle geben, bei der es ineffizient ist, Indizes zu haben. Es muss eine Grenze für die Anzahl der Indizes pro Tabelle geben, oder warum nicht für jede Spalte einen Index hinzufügen?

Jede Quelle, die Sie empfehlen können, wäre sehr hilfreich.

Vielen Dank im Voraus!

3voto

Jacob Mattison Punkte 48729

warum nicht für jede Spalte einen Index hinzufügen

Indizes beschleunigen Abfragen, können aber Einfügungen und Aktualisierungen verlangsamen. Die Wahl des optimalen Punkts hängt zum Teil davon ab, ob Ihre Anwendung wahrscheinlich mehr Abfragen (z. B. ein Bibliothekskatalog) oder mehr Aktualisierungen (z. B. eine Prüfanwendung oder ein Protokoll) durchführt.

1voto

Bob Aman Punkte 32266

Legen Sie einen Index für alles an, was Sie wahrscheinlich verknüpfen oder nach dem Sie sortieren möchten. In den meisten Fällen ist es besser, mehr Indizes anzulegen als weniger, einfach weil die meisten Datenbanken mehr Lese- als Schreibvorgänge enthalten, insbesondere Webanwendungen. Wenn Sie Finanztransaktionen durchführen würden, wäre es etwas anderes, aber dies ist eine Rails-Anwendung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X