Встречается на собеседованиях • сегодня

Что-то может поменяться в случае создания индекса с течением времени

В PostgreSQL индексы могут становиться менее эффективными со временем из-за изменения данных. Основные причины:

  1. Раздувание (Bloat) - при частых UPDATE/DELETE остаются "мертвые" строки в индексе, увеличивая его размер и снижая производительность.

  2. Изменение распределения данных - если данные стали более или менее селективными, индекс может перестать использоваться оптимизатором.

  1. Статистика устаревает - автоанализ не всегда успевает за изменениями, что приводит к неоптимальным планам запросов.

Пример мониторинга раздувания индексов:

sql
SELECT 
    nspname || '.' || relname AS table,
    indexrelname AS index,
    pg_size_pretty(pg_relation_size(indexrelid)) AS size,
    idx_scan AS scans
FROM pg_stat_user_indexes
JOIN pg_index USING (indexrelid)
WHERE idx_scan < 100 AND pg_relation_size(indexrelid) > 1000000;

Решение: регулярно перестраивать проблемные индексы (REINDEX) и обновлять статистику (ANALYZE).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы