【问题标题】:NULL property type acquiring more Size: Google App Engine Datastore获取更多大小的 NULL 属性类型:Google App Engine Datastore
【发布时间】:2012-10-12 10:45:11
【问题描述】:

在我的应用程序中,各种 db Kind 是用种类属性的数量定义的(有些被索引,有些没有被索引)

但很惊讶,看到 Null 大小间距在 20 GB 中约为 950 MB,

有什么办法可以优化吗?

注意:有少数种类的属性没有默认值,是否需要定义默认值?

例如

class terminals(db.Model):
   location_code = db.StringProperty()
   terminal_code = db.StringProperty(default='')
   pass_code = db.StringProperty(indexed=False)
   print_format = db.StringProperty(indexed=False)
   start_invoice_no = db.IntegerProperty(indexed=False, default=1)
   next_invoice_no = db.IntegerProperty(indexed=False)
   use_jzebra = db.BooleanProperty(default=False, indexed=False)
   last_doc_details = db.TextProperty(default='{}')
   last_modified_on = db.DateTimeProperty(auto_now=True)

而且,有些属性很少使用。

【问题讨论】:

    标签: google-app-engine google-cloud-datastore


    【解决方案1】:

    您可以在构建数据存储属性时缩短它们本身的名称,因为我相信它们也计入总存储限制。

    username = ndb.StringProperty(name='un')
    username = db.StringProperty(name='un')
    

    您可以参考.username,但它会以'un' 的形式存储在数据存储中,从而节省宝贵的字节。

    因此,您的空字段可能具有“长”名称,并且有很多实例。

    数据库链接:https://developers.google.com/appengine/docs/python/datastore/propertyclass

    name
    

    属性的存储名称,用于查询。这默认为用于属性的属性名称。因为模型类具有属性以外的属性(不能用于属性),所以属性可以使用 name 将保留的属性名称用作数据存储中的属性名称,并为属性属性使用不同的名称。有关详细信息,请参阅不允许的属性名称。

    【讨论】:

    猜你喜欢
    • 2015-07-25
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多