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