Performance Appengine投影查询成本与单据不一致

Performance Appengine投影查询成本与单据不一致,performance,google-app-engine,projection,Performance,Google App Engine,Projection,我有一个具有以下内容的测试处理程序: Model.query().get( projection = [Model.name._name] ) (1) 2013-09-29 21:46:38.638 "GET /test" 200 real=2585ms api=0ms overhead=2ms (1 RPC, cost=140, billed_ops=[DATASTORE_READ:2]) Appstats向我展示了以下内容: Model.query().get( projection =

我有一个具有以下内容的测试处理程序:

Model.query().get( projection = [Model.name._name] )
(1) 2013-09-29 21:46:38.638 "GET /test" 200 real=2585ms api=0ms overhead=2ms (1 RPC, cost=140, billed_ops=[DATASTORE_READ:2])
Appstats向我展示了以下内容:

Model.query().get( projection = [Model.name._name] )
(1) 2013-09-29 21:46:38.638 "GET /test" 200 real=2585ms api=0ms overhead=2ms (1 RPC, cost=140, billed_ops=[DATASTORE_READ:2])
根据,它应该为投影查询使用1 read+1 small。为什么它告诉我2个读数(keys_只使用1个小的)?还有,为什么每次阅读的成本是70,而文档上说是60

这在开发服务器和生产服务器上都会发生


编辑:使用的模型类来自ndb

什么是Model.name.\u name?请尝试改用Model.name。

\u name是用于初始化和存储属性的内部数据库名称。当我使用属性本身的列表时,查询可能会因为奇怪的原因引发异常;至少在我的开发服务器上。我现在完成的查询没有任何问题,我检查了返回的实体,以确保它只包含投影的属性。我只是觉得奇怪,成本与文档中显示的不一致。我只是注意到,将查询方法本身中的“projection”关键字设置为道具列表是可以的,但如果在初始化QueryOptions对象时这样做,则会引发以下问题:BadArgumentError:projection参数应该只包含字符串(StringProperty('n',required=True))我怀疑这可能是一个bug,但我希望GAE团队的人能提供一个解释。你是对的,这很奇怪。我问这个问题是因为我怀疑你无意中发出了两个查询,但我不确定。当你需要尼克·约翰逊时,他在哪里=(