python - 多线程将 csvreader 行插入由 psycopg2 连接的 postgres
问题描述
我有一个管道,可以将压缩后的 csv 数据读取到 python 中,并将数据逐行插入到 postgres 数据库中,使用 psycopg2 连接。我已经创建了一个线程连接池,但我不确定如何利用它在单独的线程中插入每一行,而不是按顺序插入。如果这可能的话,互联网给了我混合的信息,我对线程 python 模块有一些经验,但不是很多。
管道目前是成功的,但速度很慢,我希望通过跨线程而不是顺序插入行来加快它的速度。
为了清楚起见,简化了以下代码:
main script
for row in reader:
insertrows(configs, row)
insertrows script
threadpool = pool.ThreadedConnectionPool(5, 20, database=dbname, port=port, user=user, password=password, host=host)
con = threadpool.getconn()
con.autocommit = True
cur = con.cursor()
cur.execute("INSERT INTO table VALUES row")
cur.close()
threadpool.putconn(con)
我想做的不是循环遍历行,而是创建类似于此链接中的线程示例的东西,但没有强大的多线程参考框架,我很难弄清楚如何为我的目的编写类似的东西。
解决方案
推荐阅读
- html - 如何使用位置:绝对防止与第一个 div 重叠的 div?
- c# - 无法在扩展 Hub 的类中访问 DbContext
- postgresql - 如何在满足给定条件的某个表上更新特定列?
- rust - 在 log4rs 中动态设置文件路径
- typescript - Typescript 自定义类型定义文件不起作用
- javascript - ngx 数据表将 nowrap 设置为自定义列
- r - 循环遍历 R 中的列作为变量更改
- javascript - 如何仅在桌面上应用此 Javascript 代码?
- python - 训练期间 TensorFlow 2 中的多输入图像分类任务中的 AssertionError
- arrays - 在 C 中初始化 ** 数组