【发布时间】:2012-09-01 09:52:29
【问题描述】:
OutOfMemoryError caused when db4o databse has 15000+ objects
我的问题是参考我之前的问题(上图)。对于相同的 PostedMessage 模型和相同的查询。
对于 100,000 个 PostedMessage 对象,查询需要大约 1243 毫秒才能返回前 20 个 PostedMessage。
现在,我在 db4o 中保存了 1,000,000 个 PostedMessage 对象。相同的查询花费了 342,132 毫秒。这是非线性的高。
如何优化查询速度?
财政年度: timeSent 和 timeReceived 是索引字段。 我正在使用 SNAPSHOT 查询模式。 我没有使用 TA/TP。
【问题讨论】:
-
你说你只想要'前20',是你用来排序在数据库中索引的结果的信息吗?
-
是的,它已编入索引。我没有使用 TA/TP。我正在使用 SNAPSHOT 查询模式。前 20 个是因为,我想以分页方式访问 PostedMessages。
-
Gamlor 可以评论这个吗?
标签: database optimization db4o large-data