一、大量信息插入 通过python向Mysql插入大量数据时,可以有两种方法: for + cursor.execute(sql),最后集中提交(commit()) cursor.executemany(sql,list) 两种方法效率上和
一、大量信息插入
通过python向Mysql插入大量数据时,可以有两种方法:
for + cursor.execute(sql),最后集中提交(commit())
cursor.executemany(sql,list)
两种方法效率上和功能上有一定差异。26万条数据,使用第一种方法需要约1.5小时,使用第二种方法只需要10几秒。
executemany的用法:
import pymysqllist_1 = [('a',1),('b',2),(None,3)] # 元素是不是元组都可以sql_1 = 'insert into 表明(字段1,字段2) values(%s,%s)' # 注意,这里的%s不需要加引号,使用execute需要加引号。另外,executemany 在执行过程中能够将Python的None转为sql的null,这一点挺方便的db = pymysql.connect(host= ....)cursor = db.cursor()cursor.executemany(sql_1,list_1)db.commit()cursor.close()db.close()print('完成')
二、自动提交
在创建连接的时候,增加参数 autocommit = 1 ,当发生update等操作时,会实时更新到数据库内。否则要通过 conn.commit() 来提交到数据库进行具体操作。
如果没有设置自动提交,也没有手动提交,当进行插入或更新等操作时,只在本地客户端能看到更新,在其他客户端或数据库内,数据无变化。
# 实时操作,适合随时少量、频繁的更新import pymysqlconn = pymysql.connect(host='XXX.XXX.XXX.XXX', user='XXXXX', passWord='XXXXX', db='XXXXX', port=3306, charset='utf8',autocommit = 1 ,)# 集中大批量操作数据import pymysqlconn = pymysql.connect(host='XXX.XXX.XXX.XXX', user='XXXXX', password='XXXXX', db='XXXXX', port=3306, charset='utf8',)SQl相关操作略conn.commit() # 提交
来源地址:https://blog.csdn.net/pxx000000/article/details/126600034
--结束END--
本文标题: python操作mysql批量插入
本文链接: https://www.lsjlt.com/news/385856.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0