pymysql中不同插入操作性能比较
2021/11/20 2:11:50
本文主要是介绍pymysql中不同插入操作性能比较,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我们测试下3种插入操作方式的性能情况(以10000次为例):
- 1、每条数据都进行execute和commit
- 2、多次执行exectue,最后commit
- 3、使用executemany执行1次,然后commit1次
示例:
# coding:utf-8 import time import pymysql from settings import * con = pymysql.Connect(host=MYSQL_HOST, username=MYSQL_USER, password=MYSQL_PASSWORD, port=MYSQL_PORT, database=MYSQL_DATABASE) cur = con.cursor() sql = 'insert into test_table(test_field) values(%s);' # 1、执行和提交10000次 def test1(): t1 = time.time() for i in range(10000): try: cur.execute(sql,[i]) con.commit() except Exception as e: print(e) con.rollback() t2 = time.time() print('使用10000次execute和commit耗时:%.2f秒'%(t2-t1)) # 2、执行10000次,提交1次 def test2(): t1 = time.time() try: for i in range(10000): cur.execute(sql,[i]) con.commit() except Exception as e: print(e) con.rollback() t2 = time.time() print('使用execute执行10000次,commit1次耗时:%.2f秒'%(t2-t1)) # 3、执行executemany1次,提交1次 def test3(): t1 = time.time() args_list = [] for i in range(10000): args_list.append(i) try: cur.executemany(sql,args_list) con.commit() except Exception as e: print(e) con.rollback() t2 = time.time() print('使用executemany执行1次,commit1次耗时:%.2f秒'%(t2-t1)) def main(): test1() test2() test3() if __name__ == '__main__': main()
结果:
使用10000次execute和commit耗时:12.96秒 使用execute执行10000次,commit1次耗时:0.94秒 使用executemany执行1次,commit1次耗时:0.05秒
很明显,1次缓冲多条命令,效率会高于分次提交,同时executemany方法会进一步提升效率
这篇关于pymysql中不同插入操作性能比较的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-25MySQL报错Duplicate entry '0' for key 'PRIMARY'
- 2024-05-29阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
- 2024-05-24在Linux下管理MySQL的大小写敏感性
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享