Предположим, у меня есть следующий запрос в SQLite:
SELECT * FROM mytable ORDER BY product ASC
Я бы хотел, чтобы конечный пользователь мог просматривать данные с возможностью прокрутки (например, например, данные, доступные для просмотра в Excel)).Если пользователь прокручивает до 100 результатов, вместо того, чтобы делать что-то вроде:
SELECT * FROM mytable ORDER BY product ASC LIMIT 50 OFFSET 100
Я хочу убедиться, что возвращаемые ему результаты меньше 25 мс или около того, вместо того, чтобы ждать, пока это займет время.выполнять запрос каждый раз, когда они выходят за пределы видимого диапазона.
Каков наилучший способ сделать это?В псевдокоде я думал следующим образом:
-- 1st time query is run
SELECT * FROM mytable ORDER BY product ASC LIMIT 50 -- in main thread
INSERT INTO queryset_cache -- in background thread
SELECT rowid, * FROM mytable ORDER BY product ASC
-- 2nd time query is run, offset 84,500 (user scrolls down to that position
SELECT * FROM queryset_cache ORDER BY rowid LIMIT 50 OFFSET 84500
Это был бы лучший способ выполнить то, что я пытаюсь сделать?Или есть стандартизированный способ сделать что-то подобное в SQLite?Если это так, что будет лучшим способом сделать это?