GAE ndb设计,性能和重复性能的使用 [英] GAE ndb design, performance and use of repeated properties

查看:117
本文介绍了GAE ndb设计,性能和重复性能的使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有一个图片库,一张图片可能会有10万个粉丝。哪个ndb设计更高效?

  class picture(ndb.model):
fanIds = ndb.StringProperty(重复= True)
... [其他图片属性]

  class picture(ndb.model):
... [其他图片属性]

class fan( ndb.model):
pictureId = StringProperty()
fanId = StringProperty()

对于可以添加到ndb重复属性的项目数量是否有任何限制?是否存在将大量项目存储在重复属性中的任何性能问题?如果使用重复属性的效率较低,那么它们的用途是什么?

解决方案

如果您拥有更多超过100-1000个值。 (1000可能已经在推它。)它们不是为这样的使用而设计的。


Say I have a picture gallery and a picture could potentially have 100k+ fans. Which ndb design is more efficient?

class picture(ndb.model):
    fanIds = ndb.StringProperty(repeated=True)
    ... [other picture properties]

or

class picture(ndb.model):
    ... [other picture properties]

class fan(ndb.model):
    pictureId = StringProperty()
    fanId = StringProperty()

Is there any limit on the number of items you can add to an ndb repeated property and is there any performance hit with storing a large amount of items in a repeated property? If it is less efficient to use repeated properties, what is their intended use?

解决方案

Do not use repeated properties if you have more than 100-1000 values. (1000 is probably already pushing it.) They weren't designed for such use.

这篇关于GAE ndb设计,性能和重复性能的使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆