Перейти к содержимому
Максиметер

SQL-запрос внезапно стал медленным? Проверь не только индексы, но и статистику

SQL-запрос внезапно стал медленным? Проверь не только индексы, но и статистику Оптимизатор выбирает план запроса на основе статистики по данным. Если она устарела, база может решить, что строк мало, выбрать Nested Loop и в итоге прогнать миллионы сравнений. В PostgreSQL быстро обновить статистику можно так: ANALYZE users; А проверить, насколько оценки оптимизатора отличаются от реальности: EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM users WHERE status = 'active'; Смотри на разницу между rows= и actual rows=. Если PostgreSQL ожидал 100 строк, а реально получил 500 000, проблема может быть не в индексе, а в плохой статистике. Особенно часто это всплывает после массовых INSERT, UPDATE, импорта данных или резкого изменения распределения значений.

288 просмотров

Канал в каталоге Максиметера

3 649 подписчиков · IT и технологии

Ещё по теме «IT и технологии»

Читать дальше

Два раза в неделю свежие посты этого канала — на почту и в личную ленту. Без повторного поиска канала вручную.