2010-06-20 64 views
5

我希望index.yaml文件在我的开发环境中运行查询时用必要的索引进行更新。它声称它正在更新dev服务器日志中的这个文件,但该文件实际上并没有改变。任何想法可能会发生什么?index.yaml没有更新

这里是整个index.yaml中的文件:

indexes: 

# AUTOGENERATED 

# This index.yaml is automatically updated whenever the dev_appserver 
# detects that a new type of query is run. If you want to manage the 
# index.yaml file manually, remove the above marker line (the line 
# saying "# AUTOGENERATED"). If you want to manage some indexes 
# manually, move them above the marker line. The index.yaml file is 
# automatically uploaded to the admin console when you next deploy 
# your application using appcfg.py. 

日志有这几条线在那里我希望它增加一个新的指数点:

INFO  2010-06-20 18:56:23,957 dev_appserver_index.py:205] Updating C:\photohuntservice\main\index.yaml 

不知道如果它很重要,但我使用AppEngine SDK的1.3.4版本。

回答

7

您确定您正在运行需要构建复合索引的查询吗?在单个属性上的任何查询都将与默认索引一起提供,并且不需要index.yaml条目,并且任何仅在多个属性上使用相等过滤器的查询将使用不需要的合并连接策略执行建立自定义索引。

除非你得到生产中抛出的NeedIndexErrors(没有关于现有索引的消息,不允许查询有效运行),否则你的空index.yaml可能会非常好。

+0

当我使用GeoModel进行邻近查询时,我得到的是很长的查询。这不是一个艰难的失败,只是一个缓慢的查询。我怀疑缺少索引可能是我的责任,因为我没有。也许这是GeoModel本身的一个缺陷......(我的DataStore有几百个项目,没有查询实际上应该很慢)。 – 2010-06-20 19:31:27

+1

@Joe dev_appserver上的性能不能代表活动服务器上的性能 - 一个缓慢的查询在SDK上可能没有生产。您需要向我们展示您正在执行的查询类型的示例,以确定它是否应该生成索引。 – 2010-06-21 08:37:03

2

an issue Linux上的Python SDK不会重新生成在Windows上创建的index.yaml。这可能与您的案例有关,但您似乎并没有在SDK中创建queries that cause automatic index

+0

谢谢。在Linux上似乎也是如此(Python SDK)。删除该文件,它工作得很好;) – Gordak 2016-05-19 09:43:04