Python3 使用psycopg2模块 批量写入数据到PostgreSQL数据库(最强输出速度,单机数据库3000W数据写入最多180秒)

1.本文知识点

1)将string或者list类型的数据转换为IO缓冲区中的str类型(指定格式)

2)利用PostgreSQL中的copy_from 和copy_to函数将IO缓冲区中的str类型数据写入数据库中。

2.使用方法

1)写入数据类型为list时

'''
功能:将list数据类型多条记录一次写入数据库中
数据示例:[[1, 2, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7]]'''
import psycopg2
import pandas as pd
from io import StringIO# 创建一个示例list
data = [[1, 2, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7]]
# 将list转换为DataFrame类型
data1 = pd.DataFrame(data)
# 创建一个内存对象f,StringIO为存储在内存中的文件,格式为满足文件的任意格式
f = StringIO()
# DataFrame 类型数据转换为IO缓冲区中的str类型
data1.to_csv(f, sep='\t', index=False, header=False)
# 把f的游标移到第一位,write方法后,游标会变成最尾,使用StringIO(**)则不会
f.seek(0)
# 连接数据库
conn = psycopg2.connect(host='127.0.0.1', user="postgres", password="123456", database="postgres")
# 创建游标
cur = conn.cursor()
# 将内存对象f中的数据写入数据库,参数columns为所有列的元组
cur.copy_from(f, 'tb_user', columns=('id', 'userame', 'passwd', 'roleid', 'lasttime', 'failnum', 'info'))
# 提交
conn.commit()
cur.close()
conn.close()
print('成功写入数据库')

2)写入数据类型为str时

'''
功能:将1000条如下结构的数据记录一次写入数据库中
数据示例:
0   aaa 13434   1   2020-01-11  1   2
...
'''import psycopg2
from io import StringIOif __name__ == '__main__':s = ""# 循环创建一个字符串,把数据库每一条数据作为一行for i in range(0, 5):# 创建一条数据库记录,记录中每个字段间隔符为table(制表符\t)每一行用换行符\n 隔开下一行s += str(i)+"\taaa\t13434\t1\t2020-01-11\t1\t2\n"# 创建一个内存对象f,StringIO为存储在内存中的文件,格式为满足文件的任意格式f = StringIO()# 将s数据字符串写入内存f.write(s)# 把f的游标移到第一位,write方法后,游标会变成最尾,使用StringIO(**)则不会f.seek(0)# 连接数据库conn = psycopg2.connect(host='127.0.0.1', user="postgres", password="123456", database="postgres")# 创建游标cur = conn.cursor()# 将内存对象f中的数据写入数据库,参数columns为所有列的元组cur.copy_from(f, 'tb_user', columns=('id', 'userame', 'passwd', 'roleid', 'lasttime', 'failnum', 'info'))# 提交conn.commit()# 关闭游标cur.close()# 关闭数据库连接conn.close()print('成功写入数据库')

Python3 使用psycopg2模块 批量写入数据到PostgreSQL数据库(最强输出速度,单机数据库3000W数据写入最多180秒)相关推荐

  1. 《中国大数据产业白皮书及百强榜单》:一览中国大数据产业发展全局

    来源:网络大数据 摘要:近日,赛迪顾问重磅发布了<中国大数据产业白皮书及百强榜单>. <中国大数据产业白皮书及百强榜单>从大数据整体市场方向分享了相关洞见,对大数据产业未来发展 ...

  2. 中数据逆序输出_C语言 | 建立链表,输出各结点中的数据

    例42:C语言实现一个简单链表,它由3个学生数据的结点组成,要求输出各结点中的数据. 解题思路:读者在学习这道例题的时候,应该首先分析三个问题. 各个结点是怎么样构成链表的? 没有头指针head行不行 ...

  3. C语言 | 建立链表,输出各结点中的数据

    例42:C语言实现一个简单链表,它由3个学生数据的结点组成,要求输出各结点中的数据. 解题思路:读者在学习这道例题的时候,应该首先分析三个问题. 各个结点是怎么样构成链表的? 没有头指针head行不行 ...

  4. python批量打印excel 按照顺序_从txt文件写入excel2007,后台打印顺序正常,但是打开excel实际数据没有按照顺序排列...

    openpyxl的版本是:openpyxl-2.5.0a1 我的目的是将txt中的文本写入excel中,其实是一个自己想实现的一个小功能 但是从txt文件写入excel2007,后台打印顺序正常,但是 ...

  5. Python3之paramiko模块

    Python3之paramiko模块 转载☞:https://www.cnblogs.com/meng-wei-zhi/p/8258674.html 参考☞:https://www.cnblogs.c ...

  6. Python 网络自动化: 使用 Netmiko 模块批量下发华为、思科交换机配置

    批量下发华为.思科设备配置 通常我们对较多交换机进行配置变更的时候,都是通过人为 Login 设备,将需要变更的指令输入进去.这不仅效率低,容易出错,而且对做重复事情的厌恶情绪会直接影响变更的过程. ...

  7. Python3.5 queue 模块详解 和 进程间通讯

    queue - A synchronized queue class:https://docs.python.org/3/library/queue.html 菜鸟教程 - Python3 多线程:h ...

  8. pythonurllib模块-Python3中核心模块urllib的用法大全

    Python的urllib模块提供了一个高级的Web通信库,支持基本的协议,如HTTP.FTP和Gopher,同时也支持对本地文件的访问.在Python3中,urllib.urlparse.urlli ...

  9. python下载网页中的pdf文件_【Python】Python的urllib模块、urllib2模块批量进行网页下载文件...

    由于需要从某个网页上下载一些PDF文件,但是需要下载的PDF文件有几百个,所以不可能用人工点击来下载.正好Python有相关的模块,所以写了个程序来进行PDF文件的下载,顺便熟悉了Python的url ...

  10. 【Python3】Python模块与包的导入

    [Python3]Python模块与包的导入 一.模块导入 1. 定义 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语 ...

最新文章

  1. python计算两个字典的相同点(从key、value、item角度)
  2. 脚本命令远程访问计算机,在远程电脑上执行任意命令 (利用 Autohotkey ahk http 服务器)...
  3. B树、B+树其实很简单,看不懂你找我
  4. MIUI 9稳定版即将推送,米粉:升级小米6相机算法比升级系统重要
  5. Ansible搭建hadoop3.1.3高可用集群
  6. 龙芯团队完成CoreCLR MIPS64移植,在github开源
  7. 手机进程设置多少个最好_安卓手机难逃卡顿宿命?打开4个系统设置,秒变新机般流畅...
  8. LeetCode 703. 数据流中的第K大元素(优先队列)
  9. 保证Web数据库安全 认真把好七道关
  10. 流程 - 发布【敏捷方法之Scrum v0.2.pdf】
  11. 农行银行添加卡信息服务器,说说农业银行为App我的帐户设置里没有显示借记卡添加...
  12. python合并表格用什么库_python合并多个excel表格数据库-python实现excel合并
  13. 极客大学产品经理训练营 产品思维和产品意识 解决方案的设计与积累 作业3
  14. 【转】Intellij Idea识别Java Web项目
  15. nodejs下载文件
  16. python bartender_bartender使用教程 - 卡饭网
  17. BAT病毒-让电脑快速蓝屏
  18. UML(thinking in uml 学习)--参与者和业务工人和涉众
  19. 关于yuv rtp 打包_【讲堂】关于KNX编程基本规律
  20. 关于DOM事件的Bubbling和Capturing

热门文章

  1. 国标28181:libexosip2协议栈原理
  2. 项目实战:十种方法实现图像数据集降维
  3. 职业经理人十大修炼指南 [完全版]
  4. opengl虚拟校园漫游
  5. [原创]解决Heritrix镜像方式存储路径中文乱码的解决方案
  6. 易能变频器说明书故障代码_易能EN600变频器使用说明书.pdf
  7. [译] 移动应用设计新趋势
  8. iOS原生二维码扫描白屏问题
  9. U盘修复,U盘量产教程(以台电晶彩NCU,容量为32G的U盘为实例)by aser
  10. ExcelDNA开发视频教程-刘永富-专题视频课程