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

Was sind die größten Vorteile der Verwendung von INDEXES in mysql?

Kurze Antwort:
Indexe beschleunigen SELECT 's und verlangsamen INSERT 's.

Normalerweise ist es besser, Indizes zu haben, weil sie select beschleunigen mehr als dass sie insert verlangsamen .

Bei einem UPDATE der Index kann die Dinge ganz nach oben beschleunigen wenn ein indiziertes Feld im WHERE verwendet wird -Klausel und verlangsamen die Dinge, wenn Sie update eines der indizierten Felder.

Woher wissen Sie, wann Sie einen Index verwenden sollten

Fügen Sie EXPLAIN hinzu vor Ihrem SELECT Anweisung.
So ähnlich:

EXPLAIN SELECT * FROM table1 
WHERE unindexfield1 > unindexedfield2 
ORDER BY unindexedfield3

Zeigt Ihnen, wie viel Arbeit MySQL für jedes der nicht indizierten Felder leisten muss.
Using Mit diesen Informationen können Sie entscheiden, ob es sich lohnt, Indizes hinzuzufügen oder nicht.

Explain kann Ihnen auch sagen, ob es besser ist, es zu löschen und zu indizieren

EXPLAIN SELECT * FROM table1 
WHERE indexedfield1 > indexedfield2 
ORDER BY indexedfield3

Wenn nur sehr wenige Zeilen ausgewählt sind oder MySQL sich zum Ignorieren entschieden hat den Index (das macht er von Zeit zu Zeit) dann können Sie den Index genauso gut löschen, weil es ist was Ihr insert verlangsamt s, beschleunigt aber nicht Ihre select 's.

Andererseits könnte es auch sein, dass Ihre select-Anweisung nicht schlau genug ist.
(Entschuldigung für die Komplexität in der Antwort, ich habe versucht, es einfach zu halten, aber es ist mir nicht gelungen).

Link:
MySQL-Indizes - was sind sie? die Best Practices?