当我执行这样的简单查询时:
select * from nodeType
调用skip(N)
范围迭代器很慢。
我究竟做错了什么?
找出原因(自我回答) - 默认情况下使用文档顺序。
尝试在查询中添加一个合理的“order by”——从 10000 个节点的分钟到 < 1 秒。
可悲的是,Jackrabbit 实现中的 RangeIterator skip() 方法(RangeIterator 只是一个接口)正在线性遍历节点。你不妨写
int counter = 0;
while ( counter < offset && iter.hasNext() ) { iter.next(); counter++; }