使用大型 python 列表和 Psycopg2 快速查询 Postgress 表?



我有一个包含2000多个元素的python列表。我有一个后gress表,我需要查询这些元素中的每一个,我目前正在使用以下元素。

cur.execute("SELECT * FROM patent_info WHERE patentno = ANY (%s);", (list_of_patent,))

这样做是一次为列表中的每个元素查询一个表,然后使用

data = cur.fetchall()

问题是,对于超过 2000 个元素,响应需要一段时间才能生成,有时会导致我的 Web 应用程序超时或浏览器超时。

我一直在寻找一种更快或更有效地查询表中所有元素的方法。

我想过对列表中的每个元素使用 for 循环并使用 cur.fetchone(),但我认为这会更慢。

改为执行join

cursor.execute("""
select *
from
patent_info
inner join
unnest(%s) u(patentno) using (patentno)
""", (list_of_patent,))

最新更新