Сократите объём работы запроса: выбирайте нужные колонки, фильтруйте и агрегируйте раньше, устраняйте лишние JOIN и N+1. Проверяйте план, статистику, блокировки и выход сортировок на диск.
Какие способы оптимизации SELECT-запросов в PostgreSQL вы знаете, помимо индексов?
Сократите объём работы запроса: выбирайте нужные колонки, фильтруйте и агрегируйте раньше, устраняйте лишние JOIN и N+1. Проверяйте план, статистику, блокировки и выход сортировок на диск.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Сократите объём работы запроса: выбирайте нужные колонки, фильтруйте и агрегируйте раньше, устраняйте лишние JOIN и N+1. Проверяйте план, статистику, блокировки и выход сортировок на диск.
Иногда помогают keyset-пагинация, предварительные агрегаты, материализованное представление или кеш с допустимой свежестью. Изменение структуры данных может убрать дорогое вычисление из каждого чтения. Не переписывайте SQL только по внешнему виду: две формы могут давать один план. Измеряйте на характерных параметрах и данных, сохраняя корректность и ограничения доступа. Увеличение ресурсов имеет смысл после понимания узкого места.