我写了一个更新表的脚本。因为找不到“批处理”更新的方法,所以我的脚本一次更新一行表。我假设对于一组100000行,更新需要几秒钟。你知道吗
不需要。每次写入操作大约需要100毫秒。整个写操作需要(((100000*100)/1000)/60)/60)=2.77小时。为什么写这么久?你知道吗
下面是我使用的代码:
import psycopg2
...
entries = get_all_entries()
conn = psycopg2.connect(params)
try:
for entry in entries:
cursor = conn.cursor()
cursor.execute(UPDATE_QUERY.format(entry.field1, entry.field2))
cursor.close()
finally:
conn.close()
我做错什么了?你知道吗
你试过:
你可以用https://docs.python.org/3/library/profile.html来分析这段代码
您可以使用^{} 方法将数据上载到服务器端临时表中,然后使用单个SQL更新表,而不是从客户端逐行更新表。你知道吗
下面是一个人工的例子:
输出:
如你所见,第二条路的速度大约快20倍。你知道吗
相关问题 更多 >
编程相关推荐