Таблица содержит 100–500 миллионов записей и работа с ней стала медленной. Что можно сделать для оптимизации?

Начните с конкретных медленных запросов и планов, а не с немедленного шардинга. Большая таблица требует подходящих индексов, актуальной статистики и контроля объёма читаемых данных.

Короткий ответ

Что ответить на собеседовании

Начните с конкретных медленных запросов и планов, а не с немедленного шардинга. Большая таблица требует подходящих индексов, актуальной статистики и контроля объёма читаемых данных.

Подробный разбор

Ответ с пояснениями

Начните с конкретных медленных запросов и планов, а не с немедленного шардинга. Большая таблица требует подходящих индексов, актуальной статистики и контроля объёма читаемых данных.

Проверьте селективность фильтров, JOIN, сортировки, большие OFFSET, блокировки и bloat. Иногда помогает составной или частичный индекс, keyset-пагинация либо устранение N+1. Партиционирование полезно, если запросы отсекают partitions и есть понятный жизненный цикл данных. Для аналитики могут понадобиться агрегаты или отдельное колонночное хранилище. EXPLAIN ANALYZE действительно исполняет запрос, поэтому на production учитывают его стоимость и побочные эффекты. Оптимизацию оценивают по latency, I/O и цене записи.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее