Google app engine GQL:myList.contains(myField)是否比30个单独的myField==myList(i)查询快?
我有一个包含100个长字符的列表,还有一个包含长字段的实体。我想找到字段值在列表中的所有实体 我在想,“太好了!我将只写Google app engine GQL:myList.contains(myField)是否比30个单独的myField==myList(i)查询快?,google-app-engine,google-cloud-datastore,gql,Google App Engine,Google Cloud Datastore,Gql,我有一个包含100个长字符的列表,还有一个包含长字段的实体。我想找到字段值在列表中的所有实体 我在想,“太好了!我将只写其中:p1.contains(field)”,但AppEngine只会在不到31个元素上进行拆分(新巴斯金·罗宾斯的口号?)。所以,现在我想我必须把100人的名单分成30人的多个名单 但在这一点上,我对一个班轮射击的希望,我意识到我可以做类似的事情 for (Long number : list) GQL("select * from Kind where field
其中:p1.contains(field)
”,但AppEngine只会在不到31个元素上进行拆分(新巴斯金·罗宾斯的口号?)。所以,现在我想我必须把100人的名单分成30人的多个名单
但在这一点上,我对一个班轮射击的希望,我意识到我可以做类似的事情
for (Long number : list)
GQL("select * from Kind where field = " + number)
基本上是我自己分解成所有子查询。我的问题是。。。这是否等同于让appengine将我的30个查询列表拆分为30个单独的查询?或者,它们是否有一些后端魔法可以同时获取所有30个子查询?该函数可能使用IN(arg1,arg2,…)运算符 :
单个查询包含!=或在操作员中,限制为30个子查询。
列表中的每个项目都算作子查询,因此使用该查询样式一次只能获取30个项目。该函数可能使用in(arg1,arg2,…)运算符 :
单个查询包含!=或在操作员中,限制为30个子查询。
列表中的每个项目都算作子查询,因此使用该查询样式一次只能获取30个项目。使用
SELECT*FROM YourKind,其中list\u属性中的值将导致运行多个子查询。正是这些子查询限制为30
使用SELECT*fromYourKind,其中list_property=value
将使用为list_属性构建的索引
,因此应使用列表属性可以包含的尽可能多的条目†
†我认为这将仅限于使用SELECT*FROM YourKind,其中list_属性中的值
将导致运行多个子查询。正是这些子查询限制为30
使用SELECT*fromYourKind,其中list_property=value
将使用为list_属性构建的索引
,因此应使用列表属性可以包含的尽可能多的条目†
†我认为这仅限于功能上与常规查询相同的子查询。目前,子查询是串行运行的,因此自己执行不会比让SDK为您执行慢。不过,在未来,子查询很可能会并行执行,这使得它们比自己执行效率更高。它还可以将“IN”等功能推送到后端,从而完全避免应用服务器中的问题
不过,您应该知道,任何需要您执行100个查询的操作都将非常非常缓慢。如果可以,您应该找到一种方法来解决这个问题,而不必进行成堆的查询和合并结果。子查询在功能上与常规查询相同。目前,子查询是串行运行的,因此自己执行不会比让SDK为您执行慢。不过,在未来,子查询很可能会并行执行,这使得它们比自己执行效率更高。它还可以将“IN”等功能推送到后端,从而完全避免应用服务器中的问题
不过,您应该知道,任何需要您执行100个查询的操作都将非常非常缓慢。如果可以的话,您应该找到一种方法来解决这个问题,而不必进行成堆的查询和合并结果。我的问题是自动生成的子查询是否比我自己生成的子查询运行得快。我的问题是自动生成的子查询是否比我自己生成的子查询运行得快。子查询是否我可以自己做30个比普通老查询快30个的子查询吗?我可以自己做30个比普通老查询快30个的子查询吗?谢谢尼克-你的建议对于appengine问题是必不可少的。其他人:投票给这个答案,看看动画。谢谢尼克-你的建议对于一些问题是必不可少的。其他人:投票给这个答案,看看动画。