tg-me.com/database_info/1446
Last Update:
🚨 Как понять, почему запрос тормозит?
Сегодня покажу простой, но действенный подход к диагностике медленных SQL-запросов. Когда к тебе приходит прод с жалобой "что-то всё виснет", важно не паниковать, а системно подойти к анализу.
Вот что я делаю первым делом:
1. Включаю EXPLAIN (ANALYZE)
Это ваш лучший друг. Не EXPLAIN
, а именно ANALYZE
, чтобы получить реальные значения времени, а не план на бумаге.
2. Смотрю на узлы с наибольшим временем
Часто виновник — Seq Scan по большой таблице или Nested Loop с миллионами итераций.
3. Ищу несработавшие индексы
Был ли Index Scan
или Index Only Scan
? Если нет — стоит проверить, почему не сработал индекс. Может, фильтр не селективный?
4. Проверяю фильтрацию и сортировку
ORDER BY может убить всё. Особенно если не по индексу.
5. Думаю про статистику
ANALYZE
делали недавно? PostgreSQL может строить плохой план, если у него устаревшие данные.
🛠 Если ты часто отлаживаешь SQL — советую поставить pgMustard или использовать EXPLAIN DEPOT. Они визуализируют планы и сразу показывают узкие места.
💬 Расскажи, как ты ищешь узкие места в запросах? Есть свой лайфхак?
#db
👉 @database_info
BY Базы данных (Data Base)

Share with your friend now:
tg-me.com/database_info/1446