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, импорта данных или резкого изменения распределения значений.
Канал в каталоге Максиметера
3 649 подписчиков · IT и технологии