Aktualizace indexů jsou dvojí.
První částí je vložení/aktualizace/smazání záznamu do/z rejstříku. Index se aktualizuje, jakmile se záznam změní, a tento proces zablokuje dotaz až do dokončení.
To umožňuje rychlejší načítání záznamů na základě podmínky v indexovaném sloupci, což je nejlépe pochopený účel indexu.
Druhá část je aktualizace statistik indexu. To umožňuje optimalizátoru určit, zda se pro daný dotaz vůbec vyplatí index používat. Představte si dotaz jako SELECT * FROM users WHERE disabled = 0
. Předpokládejme, že většina uživatelů je ve skutečnosti aktivní. Pokud jsou statistiky indexu aktuální, optimalizátor si uvědomí, že většinu záznamů z tabulky vrátí dotaz, tabulka bude téměř celá potřeba skenovat. Pravděpodobně se rozhodne index nepoužívat a tabulku rovnou naskenuje.
Tato aktualizace neprobíhá automaticky s výjimkou velmi specifických situace
. Tyto statistiky by měly být pravidelně ručně aktualizovány pomocí ANALYZE TABLE [table_name]