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