0

在 Google App Engine 中,我有一个包含 10K 实体的模型,该模型在属性 foo 上有一个索引。找到第一个四分位数、第二个四分位数(中位数)和第三个四分位数实体的最有效方法是什么?我可以获取排序的键列表并以编程方式找到三个四分位键,但下载所有键将无法扩展。更优雅的方法是什么?

sortedValues = MyModel.all(keys_only=True).order('foo').fetch(limit=10000)
4

2 回答 2

1

你试过.fetch(2500,limit=1),.fetch(5000,limit=1).fetch(7500,limit=1)吗?第一个参数对应于偏移量。

但是,文档内容如下,因此这种方法无法为您提供O(1)性能。

Note: The query has performance characteristics that correspond linearly with the offset amount plus the limit amount.

这里

于 2011-09-13T09:26:10.230 回答
0

由于四分位数是根据实体排序定义的,不幸的是,除了迭代它们之外,没有办法确定它们。正如cheheen 指出的那样,您可以通过使用偏移参数不获取中间结果来加快速度。

于 2011-09-14T00:41:06.747 回答