【发布时间】:2017-08-28 22:26:54
【问题描述】:
我有一个包含超过 2000 个元素的 python 列表。我有一个 postgress 表,我需要查询这些元素中的每一个,我目前正在使用以下内容。
cur.execute("SELECT * FROM patent_info WHERE patentno = ANY (%s);", (list_of_patent,))
它的作用是为列表中的每个元素一次查询一个表,然后我将这些数据存储在数据框中,然后使用
data = cur.fetchall()
问题在于,对于超过 2000 个元素,响应需要一段时间才能生成,有时会导致我的 web 应用程序超时或浏览器超时。
我一直在寻找一种更快或更有效地从表中查询所有元素的方法。
我曾考虑对列表中的每个元素使用 for 循环并使用 cur.fetchone(),但我认为这会更慢。
【问题讨论】:
-
尝试执行 WHERE Patentno IN ()
-
检查查询执行时间与数据集传输时间并发布。
-
@ClodoaldoNeto 我如何检查这两个参数的时间?
标签: python sql postgresql psycopg2 psycopg