Оптимизация Sqlite Query (с использованием Limit и Offset)

Ниже приведен запрос, который я использую для получения фиксированного количества записей из базы данных с миллионами записей:

select * from myTable LIMIT 100 OFFSET 0

Я заметил, что если смещение очень большое, например, 90000, то выполнение запроса занимает больше времени. Ниже приведена разница во времени между двумя запросами с разными смещениями:

select * from myTable LIMIT 100 OFFSET 0       //Execution Time is less than 1sec
select * from myTable LIMIT 100 OFFSET 95000   //Execution Time is almost 15secs

Может кто-нибудь предложить мне, как оптимизировать этот запрос? Я имею в виду, что время выполнения запроса должно быть одинаковым и быстрым для любого количества записей, которые я хочу извлечь из любого OFFSET.

Недавно добавлено: - Фактический сценарий состоит в том, что у меня есть база данных, имеющая> чем 1 миллион записей. Но так как этоэто встроенное устройство, я просто могут делать "выберите * из myTable " а затем получить все записи из запроса. Мое устройство вылетает. Вместо этого я продолжаю извлекать записи в пакетном режиме (размер пакета = 100 или 1000 записей) в соответствии с запросом, упомянутым выше. Но, как я уже говорил, он становится медленным, когда увеличивается смещение. Итак, моя конечная цель - я хочу прочитать все записи из базы данных. Но так как я могуЧтобы получить все записи за одно выполнение, мне нужен другой эффективный способ добиться этого.

Ответы на вопрос(4)

Ваш ответ на вопрос