? offset и limit получаются очень медленные. есть ли более менее универсальное решение ?. + прикол даже если есть ключи то тогда сортировка работать не будет...
1) Скорость работы достаточно мало зависит от типа ключей. Ну, будет в несколько раз меньшэ от того, что они текстовые, но это не так чтобы действительно решало. 2) Постраничная пагинацыя бывает либо простая и медленная, либо быстрая, но очень сложная -- и, таким образом, является крайне затратным решэнием. 3) Потому основной совет -- переходите от постраничной пагинацыи к пагинацыи на основе точек before/after. Количества страниц потом можно поставить примерные из кэша.
4) Сортировка по текстовым ключам в postgres работет в общем неплохо. Бывают нюансы, связанные с поддержкой collation -- и с тем, что индэкс для сортировки должэн иметь тот жэ collation, что и сортировка. Но там тожэ всё достаточно логично.
вы имеете ввиду cursor-based pagination ?
по индексу ?
Не думаю. Я впервые вижу такой термин -- но думаю, что он обозначает другое.
а что вы имелли ввиду под begin after ?
по типу where id > 1000 limit 10
Ну, типа так, да.
так и прикол что у меня индексы текстовые (
А какая разница? Передавай текст. Если там совсем килобайты (хотя оно просто так не заработает) -- ну, выбирай на одно большэ, передавай обрезанное начало, после которого они ужэ различаются.
понял буду игратся ) https://use-the-index-luke.com/no-offset как я понимаю в этой статье все описано )
Обсуждают сегодня