![]() |
1
20
在使用像GAE这样的可伸缩数据存储进行前期计算时,您必须改变想法。在这种情况下,这意味着您需要为每个
现在您有了一个简单的方法来获取任何特定类别的计数
|
![]() |
2
17
+1对Jehiah的回答。 在GAE上获取对象计数器的官方方法是构建 sharded counter . 尽管名字听起来很重,但这很简单。 |
![]() |
3
7
这不是App Engine所独有的—其他数据库只是更好地隐藏了它,直到您尝试在每个请求中计算数万条记录,并且您的页面呈现时间开始呈指数级增加。。。 |
![]() |
4
2
根据
切分计数器是跟踪像这样的数字的正确方法,正如人们所说,但是如果你在游戏后期(像我一样)发现了这一点,那么你需要根据对象的实际计数初始化计数器。但是,这是一个很好的方法,可以让您的免费数据存储小操作配额(我想是50000个)。每次运行代码时,它将使用与模型对象数量相同的ops。 |
![]() |
5
0
我还没有尝试过,这是一个彻底的资源消耗,但可能是迭代
|
![]() |
6
0
orip的解决方案需要稍加调整:
|
![]() |
7
0
我们现在有了可以用来查询实体计数和其他数据的数据存储统计信息。这些值并不总是反映最近的更改,因为它们每24-48小时更新一次。有关更多详细信息,请查看文档(请参阅下面的链接): |
![]() |
8
0
正如@Dimu所指出的,谷歌定期计算的统计数据是一个不错的资源,因为不需要精确的计数,而且记录的百分比在任何一天都不会发生剧烈变化。
此操作返回了许多有用的属性:
示例代码
为了回答作为对我答案的评论发布的后续问题,我现在提供一些示例
|
![]() |
9
-1
创建新对象时,必须手动检索最高键:
这看起来像是在浪费查询,但是get()会从索引顶部返回一条记录。它非常快。 然后,当您想要获取超过第1000个对象限制的数据时,只需执行以下操作:
http://aralbalkan.com/1504 . 这很令人沮丧,但当您习惯了它,并且意识到它比关系数据库上的count()快得多时,您不会介意。。。 |
![]() |
Itamar Cohen · 谷歌管理的SSL证书不起作用 2 年前 |
![]() |
cozimo · 谷歌云警告:自动应用检测已被弃用,并将很快被删除 6 年前 |
![]() |
Noah Watkins · ndb的控制索引。Expando模型属性 6 年前 |