首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GAE数据存储区索引限制

GAE数据存储区索引限制
EN

Stack Overflow用户
提问于 2014-11-05 15:41:05
回答 1查看 407关注 0票数 0

第一,我的申请,在配额细节上,索引的数量达到了200个。但是当我计算Datastore索引时,它有超过200个索引。那么为什么我可以添加200多个索引呢?

第二,在https://cloud.google.com/appengine/docs/quotas免费默认每日索引数量限制是200* ( *。不是每日限制,而是总限制)

所以这意味着当你付钱的时候,你会添加超过200个索引吗?这是真的吗?

3、我的代码:ModelMeta meta = ModelMeta.get(); List modelList = Datastore.query(meta).filter(meta.fieldA.equal("0")) .filter(meta.fieldB.equal("1").asList();事件我是否为其定义了索引,一切运行正常。我不明白为什么?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-11-05 16:12:31

单个属性的

  1. 索引不计入限制。你不必在任何地方定义它们-如果一个属性被索引了,你可以在过滤器中使用它,你可以用它来对查询结果进行排序。
  2. 你只需要定义复合索引,顺便说一下,App Engine Java SDK会自动生成它们。我不记得上一次我必须手动添加索引是什么时候了,但我们在本地做了很多测试,这有助于自动生成所有索引。
  3. 如果您需要200多个复合索引,您几乎可以肯定做错了什么。200被认为是一个没有人能达到的疯狂极限,即使是最复杂的数据模型也是如此。

举个例子,我有一个应用程序,有20个不同的模块,几乎有100种不同的实体,它们的关系非常复杂,实体属性的总数有数千个。应用引擎控制台显示此应用程序的24个索引。

请注意,在许多情况下,检索所有实体然后将其过滤掉比创建许多复合索引更便宜、更快。原因很简单:索引很容易占用比数据本身多得多的空间,实体的写入成本直接与索引属性和复合索引的数量成比例。因此,在每个索引属性的单个索引之上添加200个复合索引肯定是一个主要的成本和性能问题。还有其他方法可以通过仔细设计数据模型来避免不必要的索引。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26751944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档