0

我们使用 GAE w Java 和 JDO 2.3。有没有办法以与创建顺序相反的方式对 JDO 查询的实体进行排序?我认为如果我们使用索引列而不是时间戳,它将提高性能。这样对吗?

4

2 回答 2

1

您不能依赖数据存储服务不断分配的 id。

但是您可以将时间戳设置为您的键名的一部分,或者使用 分配一个连续的 id 范围DatastoreService.allocateIds,以确保您的键单调递增。

然后,您应该能够使用 对实体键进行排序KEY_RESERVED_PROPERTY

与索引时间戳属性相比,如果要查询完整实体,您将保存额外的索引查找,但对于key only查询没有什么不同。

请注意,降序排序将需要附加索引,如App Engine JDO 查询文档中所述

如果您拥有具有单调键或索引的实体的高写入吞吐量,还要注意热平板电脑问题。

于 2012-08-21T15:49:30.473 回答
1

如果您在单个时间戳列上进行查询和排序,appengine 将为您创建一个索引,并且查询将非常快。

于 2012-08-21T15:49:57.507 回答