GAE / J数据存储区:存储空值与缺失值

时间:2011-01-02 12:36:02

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

任何人都可以确认存储具有空值的属性是否最有效(就数据存储使用和配额而言)是否完全不存储任何内容(即缺失值)?

考虑到这一点似乎是合理的,在这种情况下,我想知道在使用JDO / JPA时如何避免存储属性值而不是空值。我只能避免使用数据存储区低级API存储给定属性。

2 个答案:

答案 0 :(得分:1)

我认为不存储属性会为您节省少量磁盘配额,但我不确定这是否值得付出努力,除非这些“可选”属性的数量与“始终”的数量相比较大有“属性。

当然,您可以通过使用低级API创建2组示例数据来执行简单测试,并检查Stats页面以查看数据存储区中大小的差异。

需要注意的是,AFAIK无法查询拥有属性的所有实体。

答案 1 :(得分:0)

存储null会产生费用。

它们是2次写入操作,也是很少的数据,如果属性名称与其他实体相同,我想这个名称在字典中,每个属性都存储一个指针来获取名称。

https://developers.google.com/appengine/docs/java/datastore/entities#Java_Understanding_write_costs