0

在我的应用程序中,各种 db Kind 是用多种类型的属性定义的(有些已编入索引,有些未编入索引)

但是很惊讶,看到20 GB 中的Null大小间距约为 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)

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

4

1 回答 1

0

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

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

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

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

db 链接:https ://developers.google.com/appengine/docs/python/datastore/propertyclass

name

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

于 2012-10-12T12:44:11.083 回答