Krótka odpowiedź:
Indeksy przyspieszają SELECT
i zwolnij INSERT
's.
Zwykle lepiej mieć indeksy, ponieważ przyspieszają select
bardziej niż spowalniają insert
.
Podczas UPDATE
indeks może przyspieszyć rzeczy wzrost jeśli indeksowane pole jest używane w WHERE
klauzula i spowolnij działanie, jeśli update
jedno z indeksowanych pól.
Skąd wiesz, kiedy użyć indeksu
Dodaj EXPLAIN
przed Twoim SELECT
oświadczenie.
Tak jak:
EXPLAIN SELECT * FROM table1
WHERE unindexfield1 > unindexedfield2
ORDER BY unindexedfield3
Pokaże, ile pracy MySQL będzie musiał wykonać na każdym z nieindeksowanych pól.
Używanie te informacje możesz zdecydować, czy warto dodawać indeksy, czy nie.
Wyjaśnij może również powiedzieć, czy lepiej jest porzucić i indeksować
EXPLAIN SELECT * FROM table1
WHERE indexedfield1 > indexedfield2
ORDER BY indexedfield3
Jeśli zaznaczono bardzo mało wierszy lub MySQL zdecydował się zignorować indeks (robi to od czasu do czasu) wtedy równie dobrze możesz porzucić indeks, ponieważ jest spowalnia insert
s, ale nie przyspieszając select
s.
Może też być tak, że instrukcja select nie jest wystarczająco sprytna.
(Przepraszam za złożoność odpowiedzi, starałem się, aby była prosta, ale nie udało mi się).
Link:
Indeksy MySQL - jakie są najlepsze praktyki?