Есть таблица с 10 миллионами пользователей, запросы работают медленно. Как решить проблему? Расскажи про составные индексы и принцип их работы.

Сначала найдите медленные запросы и их планы: само число 10 млн строк ещё не объясняет проблему. Составной индекс хранит несколько колонок в заданном порядке и должен соответствовать фильтрам и сортировке.

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

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

Сначала найдите медленные запросы и их планы: само число 10 млн строк ещё не объясняет проблему. Составной индекс хранит несколько колонок в заданном порядке и должен соответствовать фильтрам и сортировке.

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

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

Сначала найдите медленные запросы и их планы: само число 10 млн строк ещё не объясняет проблему. Составной индекс хранит несколько колонок в заданном порядке и должен соответствовать фильтрам и сортировке.

Для частого запроса WHERE tenant_id = ? ORDER BY created_at индекс (tenant_id, created_at) может быть полезен. Порядок колонок влияет на возможность сужения диапазона; условия только по поздним колонкам не равноценны ведущим, хотя отдельные СУБД умеют специальные стратегии. Учитывайте селективность, пагинацию и размер результата. Индексы занимают место и удорожают запись, поэтому результат проверяют планом и измерением.

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

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

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

Подробнее