композитному индексу (first_id, second_id) по колонке second_id?
запрос выглядит как select * from t where first_id = any ($1) order by second_id desc этот запрос будет долговастенько сортировать, в плане выглядит как external merge
Нет, ничего лучше нельзя получить с таким индексом
Ну, external merge — это не то чтобы так уж дороговастенько.
Если у вас версия 12 или древнее, то проверьте как оно отработает в 13-й, там появилась оптимизация для близкого к вашему случая - инкрементальная сортировка.
так она уж работает если сортировка проходит и по 1 и по 2 одновременно ключам, не? For example, you have an index on c1 and you need to sort dataset by c1, c2. Then incremental sort can help you because it wouldn’t sort the whole dataset, but sort individual groups whose have the same value of c1 instead. (с) https://postgreshelp.com/postgresql-13-master-guide/
Да, заявленный функционал именно такой, но вдруг он и в вашем случае пройдётся по индексу.
Обсуждают сегодня