Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 如何知道总是使用哪些索引_Google App Engine_Indexing - Fatal编程技术网

Google app engine 如何知道总是使用哪些索引

Google app engine 如何知道总是使用哪些索引,google-app-engine,indexing,Google App Engine,Indexing,可能重复: 我有一个有几个索引的应用程序,我想清理所有未使用的索引,以获得更好的性能 现在我有一个index.yaml,其中只包含所需的索引,但我不确定它是否正确,因为有时数据存储需要复合索引,或者我可能犯了一个错误 真正的问题是如何知道使用了哪些索引 最大的问题是,如果我删除一个使用过的索引,那么删除它的时间非常……非常长,而且构建过程也一样。过去的过程是: 清除应用程序本地开发副本上的index.yaml 在SDK上运行一组覆盖测试(不必覆盖每一行代码,只需覆盖每个查询,这使得编写这些测试

可能重复:

我有一个有几个索引的应用程序,我想清理所有未使用的索引,以获得更好的性能

现在我有一个index.yaml,其中只包含所需的索引,但我不确定它是否正确,因为有时数据存储需要复合索引,或者我可能犯了一个错误

真正的问题是如何知道使用了哪些索引


最大的问题是,如果我删除一个使用过的索引,那么删除它的时间非常……非常长,而且构建过程也一样。

过去的过程是:

  • 清除应用程序本地开发副本上的index.yaml
  • 在SDK上运行一组覆盖测试(不必覆盖每一行代码,只需覆盖每个查询,这使得编写这些测试比为应用程序组件编写一组单元测试更容易)
  • 上载新的index.yaml,该操作现已完成,因为开发服务器会自动将其使用的任何索引添加到文件中
  • 真空指数
  • 这可能已经改变了。我已经有一段时间没有使用GAE了,开发人员习惯于引入新的、更好的方法。但旧的方法几乎总是继续有效


    [编辑:发现了一个重复,所以假设这个答案仍然是最先进的,那么就去投票吧,而不是我]

    好的,但是没有关于生产环境需要的综合索引的信息?@sahid:为什么生产环境需要与开发环境不同的索引?据我所知,一个给定的查询在任何地方都需要相同的索引,但正如我所说的,我可能已经过时了。开发环境根本不需要索引,尽管您可以指定一个命令行标志,让它假装需要索引。它完全生成生产中所需的索引。@尼克:你是说“不需要索引”,即它使用索引,但根据需要生成任何它想要使用的东西吗?我认为这是“需要索引”,只是不需要应用程序预先指定它们。或者您的意思是“不需要索引”,即dev服务器实际上在每个查询上搜索整个表?如果是后者,那么它是否只是一个验证步骤,防止开发服务器(例如)在查询中包含多个不相等的比较?@Steve开发服务器不使用索引-它们纯粹是为生产环境生成的。是的,您可能会进行一些小的修改,而dev服务器将能够执行具有多个不等式的查询,尽管这不是一个好主意。