我有一个Google App Engine数据存储,其中可能有数百万条记录,我试图找出最好的方法来做一个查询,我需要获取匹配多个字符串的记录。谷歌App Engine查询优化
例如,假设我有以下型号:
字符串名称 串级 诠释得分
我需要返回所有的记录,对于给定的“水平”也匹配“列表名字”。名称列表中可能只有1或2个名称,但可能有100个。
它基本上是给定级别(“级别”)的玩家(“名称”)的高分(“分数” )。我想通过“名称”找到给定“级别”玩家列表的所有分数,以建立一个包含您的朋友的高分列表。
我可以遍历“名称”列表并针对该级别的每个高分执行查询,但我不知道这是否是最好的方法。在SQL中,我可以构造一个(复杂)查询来执行此操作。
考虑到数据存储的大小,我想确保我不会浪费时间运行应该由查询完成的python代码,反之亦然。
“级别”需要是一个字符串,而不是一个INT,因为他们没有编号levesl,而是级别名称,但我不知道这是否重要。
我担心的是,Player.all()。滤波器(...)查询可能对蟒蛇返回几十万条记录,并可能是一个应变,然后通过他们转移。很明显,工作是由某人完成的,但数据库引擎可能会更好地进行优化(像mysql通常不是php)。我只是没有看到将这项工作转移到GAE数据库的方法,可能没有给出它的工作原理。 – 2012-02-25 05:18:59