Senior
Hoe stel je de benodigde index in? Wat moet je kijken in EXPLAIN? Hoe weet je dat de index niet wordt gebruikt?
sobes.tech AI
Antwoord van AI
Чтобы настроить нужный индекс, нужно:
- Определить, по каким столбцам часто выполняются фильтры, сортировки или соединения.
- Создать индекс на эти столбцы, учитывая порядок и тип индекса (например, B-tree).
При анализе запроса с помощью EXPLAIN смотрят:
- Используется ли индекс (в поле типа "key" или "Index Scan").
- Какой именно индекс выбран.
- Количество строк, которые планируется прочитать (rows).
- Тип доступа (например, "index scan", "seq scan" — последовательное сканирование).
Если в EXPLAIN видно, что используется "seq scan" (последовательное сканирование), а не индексный доступ, значит индекс не используется.
Причины неиспользования индекса:
- Запрос не соответствует структуре индекса (например, фильтр по неиндексированному столбцу).
- Статистика устарела — нужно обновить статистику таблицы.
- Оптимизатор считает, что последовательное сканирование быстрее (например, при большом объеме данных).
Пример создания индекса в PostgreSQL:
CREATE INDEX idx_users_email ON users(email);
Проверка плана:
EXPLAIN SELECT * FROM users WHERE email = 'test@example.com';
Если в выводе есть Index Scan using idx_users_email, значит индекс используется.