for循环中的数据库查询效率低下

时间:2015-08-26 02:49:25

标签: python django database postgresql query-optimization

我正在编写如下代码。它使用Django,但在其他情况下可能会发生这种情况。我也使用Postgres作为DB btw。

for elem in elemList:
    return_obj = someModle.objects.get(something=elem)
    if return_obj is not None:
        return_list.append(return_obj)
return return_list

这里每次都会生成并执行一个新的数据库查询。由于循环可能很大,因此可能存在大量数据库执行。我想知道是否有更好的方法来完成这项工作。

1 个答案:

答案 0 :(得分:1)

首先:如果ALTER TABLE `Table` ADD UNIQUE (`start_of_week`, `end_of_week`, `weekday`); 条件与任何对象都不匹配,则不会得到something=elemNone会引发DoesNotExist例外。

其次,你可以试试这个:

someModel