Введение в индексы в Nest
Список из большой таблицы часто отбирают по одному полю или по сочетанию двух. Без подсказки базе она перебирает все строки, и ответ заметно запаздывает, когда записей уже сотни тысяч.
Индекс хранит упорядоченные значения выбранных колонок отдельно от основной кучи данных. Планировщик PostgreSQL может найти нужные строки по индексу и не сканировать всю таблицу. Индекс ускоряет чтение, но замедляет вставку и правку: каждое новое значение нужно дописать и в таблицу, и в индекс.
TypeORM описывает индекс на сущности через декоратор с именем колонки или списком колонок. При включённой синхронизации схемы индекс появится в базе после перезапуска приложения. На боевом сервере индексы обычно добавляют отдельным шагом миграции, чтобы схему менять осознанно и с возможностью отката.
Дальше разберём индекс одной колонки, общий индекс по двум полям, уникальный составной индекс и создание индекса в миграции при выключенной автосинхронизации. На сайте с материалами те же приёмы ускоряют типовые фильтры без ручного SQL в сервисах Nest.