0

我已经开始开发一个 appengine 网站,并意识到我将需要对我的数据库进行大量随机查询,这对于数据存储或 ndb 来说是一件很尴尬的事情。这是我的“随机”查询的示例代码:

q = UserList.query(ancestor = listakey)
if los.rand_num < self.rand_num:
    q2 = q.filter(UserList.rand_num > self.rand_num)

elif los.rand_num > self.rand_num:
    q2 = q.filter(UserList.rand_num > los.rand_num)

users = q2.fetch(1)
while len(users) == 0:
        users = q.fetch(1)
        self.rand_num = random.random()
        self.put()

其中 .rand_num 是分配给获胜者和失败者实体的随机浮点数,以确保这不会再次出现在下一个查询中。这个随机数每隔一些查询就会更新一次,尽管结果非常随机,但这似乎浪费了太多资源,因为平均延迟约为 500 毫秒。另一方面,我相信在 SQL 数据库中这会更有效率

我的问题是,是否有人对如何改进我的代码或我应该获得 Cloud SQL 有什么建议?

4

0 回答 0