EXPLAIN показывает план выполнения SQL-запроса — как именно PostgreSQL будет искать данные. Незаменимый инструмент для оптимизации.
EXPLAIN ANALYZE SELECT * FROM users WHERE email = 'test@mail.com';
-- Seq Scan on users (cost=0.00..25.00 rows=1 width=100) (actual time=0.5..2.1 rows=1 loops=1)
-- Planning Time: 0.1 ms
-- Execution Time: 2.2 ms
Если видишь Seq Scan на большой таблице — нужен индекс. Index Scan — хорошо. EXPLAIN ANALYZE реально выполняет запрос и показывает фактическое время. Важные метрики: actual time, rows (estimated vs actual), Seq Scan vs Index Scan. Используй EXPLAIN перед тем как деплоить новый сложный запрос.