1

当我执行这样的简单查询时:

select * from nodeType

调用skip(N)范围迭代器很慢。

我究竟做错了什么?

4

2 回答 2

2

找出原因(自我回答) - 默认情况下使用文档顺序。

尝试在查询中添加一个合理的“order by”——从 10000 个节点的分钟到 < 1 秒。

于 2009-02-22T22:00:36.403 回答
1

可悲的是,Jackrabbit 实现中的 RangeIterator skip() 方法(RangeIterator 只是一个接口)正在线性遍历节点。你不妨写

int counter = 0;
while ( counter < offset && iter.hasNext() ) { iter.next(); counter++; }
于 2009-11-09T15:02:24.603 回答