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

Wann fügt man einen Index zu einem SQL-Tabellenfeld hinzu (MySQL)?

Es ist nicht immer klar, wo Indizes in SQL-Tabellen verwendet werden sollen. Aber es gibt einige allgemeine Faustregeln, die Ihnen in den meisten Fällen bei der Entscheidung helfen können.

  1. Index auf Spalten setzen, die in where-Klauseln verwendet werden
  2. Setzen Sie einen Index auf Spalten, die Sie zum Verbinden verwenden.
  3. Versuchen Sie, nicht mehr als 4-5 Indizes für Spalten in derselben Tabelle zu verwenden.

Und die allgemeinen Konzepte, die Sie beachten sollten, sind:

  1. Jeder von Ihnen verwendete Index beschleunigt die Suche in diesen Spalten.
  2. Jeder Index, den Sie hinzufügen, führt dazu, dass das Einfügen in diese Tabelle etwas langsamer ist.
  3. Von den vorherigen zwei. Es liegt in Ihrer Verantwortung, zu entscheiden, wie viele Einfügungen und Abfragen Sie in Tabellen vornehmen, um zu entscheiden, ob Sie den Index verwenden und für welche Spalten oder nicht.

BEARBEITEN

Der Kommentar von @AndrewLazarus ist wirklich wichtig und ich habe beschlossen, ihn der Antwort hinzuzufügen:

  1. Verwenden Sie keine Indizes für Spalten mit nur wenigen unterschiedlichen Werten. Zum Beispiel eine Spalte, die einen Zustand enthält, wenn es nur wenige Zustände gibt, oder einen booleschen Wert. Der Grund dafür ist, dass der Index Ihnen nicht wirklich hilft, da er nur durch die Anzahl der Werte geteilt wird, und da Sie nur wenige davon haben, gibt es keinen wirklichen Nutzen. Die Tabelle würde mit dem Index mehr Platz verbrauchen und beim Einfügen langsamer werden, aber Sie erhalten keine wesentlich bessere Leistung beim Abfragen