python3 executemany 效率_Python MySQLdb 循环插入execute与批量插入executemany性能分析

本文通过Python的MySQLdb库,对比了循环执行execute插入与一次性executemany批量插入的性能。在插入10000条数据的情况下,executemany方法只需0.86秒,而循环执行execute耗时约244秒。此外,还提到了MySQL的load data infile方法,该方法在导入数据时速度更快。
摘要由CSDN通过智能技术生成

Python MySQLdb 循环插入execute与批量插入executemany性能分析

用Python连接MySQL数据库时,会用到MySQLdb库,这里下载↓↓↓

https://pypi.python.org/pypi/MySQL-python/

这个库提供了对数据库的普遍操作,增删改查之类的,教程可以参考:

python下的MySQLdb使用

其中,有一个很cooooooooooool的功能就是批量操作executemany,可以进行多行插入

先写sql语句。要注意的是里面的参数,不管什么类型,统一使用%s作为占位符

例如,向user表(username,salt,pwd)插入数据

sql = 'INSERT INTO 表名 VALUES(%s,%s,%s)'

对应的param是一个tuple或者list

param = ((username1, salt1, pwd1), (username2, salt2, pwd2), (username3, salt3, pwd3))

这样就包含了三条数据,通过executemany插入

n=cursor.executemany(sql,param)

上个双休日在学校往毕设系统里导名单,想到Java就心累于是用Python写

作为一个老实的土鳖,在知道有这个酷炫的方法情况下,还是有点不敢用,先保守地写了一个循环的版本

几百条数据很快就导进去的,本来这就该结束了,但是又觉得有点不甘心,想知道两种插入方式效率有多大差别

于是简单模拟了10000个用户的数据,试着用两种方法各跑了一遍

# -------------------------------------------

# Python MySQLdb 循环插入execute与批量插入executemany性能分析

# 插入数据量:10000条

# 每条字段:username, salt, pwd

# Author : Lrg

# -------------------------------------------

# encoding = utf-8

import MySQLdb

import xlrd

import time

import sys

reload(s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值