У меня есть HTTP-клиент, который хочет просто отправить смещение в строке запроса для обработки подкачки, например, http://foo.com/cars?offset=50
.
В ответ они получают модель, которая имеет общее количество элементов и массив данных. {"totalitemcount":100, "data":[{"id":1,"name":"Porsche"},{"id":2, "name":"Ferrari"}]}
SQL, который я использую для этого, приведен ниже:
select count(items.id) over() as totalitemcount, items.* from (
select * from cars
order by id
) as items
limit 20
offset 50
Я не уверен, насколько эффективен этот подход, и интересовался приведенными выше ограничениями, можно ли внести изменения для его улучшения?