Krátká odpověď:
Indexy zrychlují SELECT
's a zpomalte INSERT
's.
Obvykle je lepší mít indexy, protože urychlují select
více než zpomalují insert
.
Na UPDATE
index může věci zrychlit pokud je v WHERE
použito indexované pole klauzule a zpomalíte věci, pokud update
jedno z indexovaných polí.
Jak poznáte, kdy použít index
Přidejte EXPLAIN
před vaším SELECT
prohlášení.
Jako takto:
EXPLAIN SELECT * FROM table1
WHERE unindexfield1 > unindexedfield2
ORDER BY unindexedfield3
Ukáže vám, kolik práce bude muset MySQL udělat na každém z neindexovaných polí.
Používání na základě těchto informací se můžete rozhodnout, zda se vyplatí přidávat indexy nebo ne.
Explain vám také může říci, zda je lepší vypustit a indexovat
EXPLAIN SELECT * FROM table1
WHERE indexedfield1 > indexedfield2
ORDER BY indexedfield3
Pokud je vybráno velmi málo řádků nebo se MySQL rozhodlo ignorovat index (čas od času to dělá) pak můžete index také vypustit, protože je zpomalení vašeho insert
s, ale nezrychlí váš select
's.
Pak se také může stát, že vaše vybrané prohlášení není dostatečně chytré.
(Omlouvám se za složitost odpovědi, snažil jsem se to zjednodušit, ale nepodařilo se to).
Odkaz:
MySQL indexy – co jsou osvědčené postupy?