我使用批处理查询来使我的应用程序更具响应性。这是一次获取所有内容的改进,但是,当滚动结果时,我的设备在加载下一组结果时存在明显的延迟(约 500 毫秒)。我推断排序导致滞后(删除ORDER BY
导致平滑滚动的结果)。
SELECT myTable.itemID
FROM myTable
ORDER BY myTable.order ASC
LIMIT 30
然后
LIMIT 30 OFFSET 30
LIMIT 30 OFFSET 60
etc...
告诉我它使用EXPLAIN QUERY PLAN
临时二叉树进行排序(尽管有可用的索引)。
SCAN TABLE myTable (~1000000 rows)
USE TEMP B-TREE FOR ORDER BY
我可以提高分拣速度吗?从文档中可以看出,排序
O ( N logN )
无论是使用二叉树还是索引。我可以避免对后续请求进行排序吗?即以某种方式重新使用结果中的第一个排序
LIMIT 30
结果 fromLIMIT 30 OFFSET 30
?还有其他策略可以提供帮助吗?