我已经开始开发一个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吗?