python - 为什么 psycopg2 写入需要这么长时间?

标签 python postgresql

我写了一个更新表的脚本。由于我找不到“批量”更新的方法,我的脚本一次更新表的一行。我假设对于一组 100,000 行,执行更新需要几秒钟。

没有。每个写操作大约需要 100 毫秒。整个写操作耗时 ((((100,000 * 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()

我做错了什么?

最佳答案

你试过吗:

cursor = conn.cursor()
for entry in entries:
     cursor.execute(UPDATE_QUERY.format(entry.field1, entry.field2))

cursor.close()

您可以使用 https://docs.python.org/3/library/profile.html 分析此代码

关于python - 为什么 psycopg2 写入需要这么长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47803623/

相关文章:

python - 无法通过 Python 从 Ubuntu 上的 Gmail 发送电子邮件

Python——如何从随机点开始遍历范围

python - 在Python中迭代文本文件的内容

python - 在 django admin 中动态设置 readonly_fields

sql - 条件 SQL 计数

c++ - 带有准备好的语句的 libpqxx 数组数据

python - 我可以打印出类的实例名称吗?

node.js - 从sequelize.js获取错误的对象名称,包括从数据到数据的JSON响应中的方法

postgresql - Docker 在生成容器时复制 PGDATA 文件夹

postgresql - 获取表的最后一个值的时间越来越长