Nix*_*Nix 3 python google-app-engine
在app引擎(ndb或db)中处理计数的适当方法是什么?
我有两个项目是django-nonrel,另一个是纯django项目,但都需要能够进行查询并获得倒计时.结果可能大于1,000.
我看到一些帖子说我可以使用Sharded Counters,但他们正在计算所有实体.我需要能够知道有多少实体具有以下属性x = 1,y = True,z = 3
#Is this the appropriate way?
count = some_entity.gql(query_string).count(SOME_LARGE_NUMBER)
Run Code Online (Sandbox Code Playgroud)
数据存储区并不擅长此类查询,因为要进行权衡以使其分布.这些包括相当慢的读取和非常有限的索引.
如果您需要一组有限的统计信息(用户数,文章数等),那么您可以在一个单独的实体中继续运行总计.这意味着当需要更改时,您需要执行两次写入(puts):一次用于更改的实体,另一次用于更新stats实体.但是你只需要一个读取(get)来获取统计数据,而不是从中提取出许多实体.
你可能对此感到不舒服,因为它违背了我们所知道的关于规范化的内容,但它更有效率,并且在许多情况下工作正常.如果这是至关重要的,您可以随时定期执行cron作业以查看统计信息是否准确.
| 归档时间: |
|
| 查看次数: |
209 次 |
| 最近记录: |