Ответ
EXPLAIN показывает план выполнения SQL-запроса, который генерирует СУБД. Это помогает оптимизировать запросы, выявляя узкие места: отсутствие индексов, полные сканирования таблиц, сложные соединения и т.д.
Пример для PostgreSQL:
EXPLAIN SELECT * FROM users WHERE id = 42;
Вывод может выглядеть так:
Index Scan using users_pkey on users (cost=0.15..8.17 rows=1 width=72)
Index Cond: (id = 42)
Ключевые параметры:
cost— оценка стоимости операцииrows— ожидаемое количество строкscan type(Seq Scan, Index Scan) — метод доступа к данным
В Go можно использовать с database/sql:
rows, err := db.Query("EXPLAIN ANALYZE SELECT * FROM users WHERE id = $1", 42)