Актуализациите на индексите са двойни.
Първата част е вмъкване/актуализация/изтриване на записа в/от индекса. Индексът се актуализира веднага след промяна на записа и този процес блокира заявката до приключване.
Това позволява по-бързо извличане на записи въз основа на условие в индексирана колона, най-добре разбраната цел на индекса.
Втората част е актуализиране на статистиката на индекса. Това позволява на оптимизатора да определи дали за дадена заявка дори си струва да използва индекса. Представете си заявка като SELECT * FROM users WHERE disabled = 0
. Да приемем, че повечето потребители всъщност са активни. Ако статистиката на индекса е актуална, оптимизаторът ще разбере, че повечето записи от таблицата ще бъдат върнати от заявката, таблицата почти изцяло ще трябва да бъде сканирана. Вероятно ще реши да не използва индекса и ще сканира таблицата веднага.
Тази актуализация не се извършва автоматично освен в много специфични ситуации
. Тези статистически данни трябва да се актуализират ръчно редовно с ANALYZE TABLE [table_name]