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-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程