是实体的列数限制?

时间:2014-01-19 01:28:51

标签: google-app-engine

我可能有一个可能有数千列的实体,并且想知道它是否会造成任何问题(没有任何内容会被编入索引):

  • 如果列数增加,查询会更慢吗?
  • 理论上可以有无限数量的列吗?

2 个答案:

答案 0 :(得分:1)

虽然我从未有过数千列了解速度和性能,但从仪表板上的数据查看器看,列数应无限制:

number of columns

答案 1 :(得分:0)

考虑到GAE数据存储区本质上是一个非常大的键值存储区,直到属性级别,原则上允许无限数量的属性。其他人已经说过,由于空间原因,并不是所有记录都在一起。

数据存储是无模式的,但许多库,如JDO,JPA和Objectify旨在通过引入自己的一些模式来“修复”这种“缺陷”。这在您的场景中无益。

我建议您绕过这些库,然后根据this example直接调用数据存储区低级API。如果您尽可能频繁地将setProperty调用更改为setUnindexedProperty,则可以避免索引的开销。请记住测试getProperty调用的null返回,以获取某些记录中可能不存在的属性。