Встречается на собеседованиях • сегодня
На что обращаешь внимание в выводе EXPLAIN ANALYZE в БД
При анализе EXPLAIN ANALYZE в PostgreSQL (аналоги для других СУБД) смотрю на:
- Тип доступа (Seq Scan, Index Scan, Bitmap Heap Scan) - индексные сканы обычно лучше полных.
- Стоимость (cost) - разницу между оценкой и реальным временем (планировщик может ошибаться).
- Rows vs Actual Rows - если расхождение >10%, возможно, нужен
ANALYZE. - Фильтрация (Filter) - много отброшенных строк указывает на неоптимальность.
- Join-алгоритмы (Nested Loop, Hash Join, Merge Join) - выбор зависит от размера таблиц.
- Параллельное выполнение - Workers Planned > 0.
- Временные файлы (Temp Files) - их использование сигнализирует о нехватке памяти.
Пример проблемного плана:
sql
-> Seq Scan on orders (cost=0.00..1834.00 rows=1000 width=8)
(actual time=0.012..12.345 rows=1000000 loops=1)
Filter: (amount > 1000)
Rows Removed by Filter: 5000000 -- 83% отфильтровано!Здесь явно нужен индекс по amount.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы