以下仅仅测试插入10000条数据的比较结果,两者效率相差30倍之多。
import MySQLdb
import time
conn = MySQLdb.connect(host='xx.xx.xx.xx', port=3306, db='test_for_performance', user='root',
passwd='xxx', charset='utf8')
cur = conn.cursor()
def run111():
#常规插入方法
s = time.time()
sql = "insert into auth_group (name) values(%s)"
for i in range(10000):
cur .execute(sql, [i])
conn.commit()
cur .close()
conn.close()
e = time.time()
print(e-s)
def run222():
#批量插入方法
s = time.time()
data_list = [(i,) for i in range(10000)]
sql = "insert into auth_group (name) values(%s)"
total_count = cur .executemany(sql, data_list)
conn.commit()
cur .close()
conn.close()
e = time.time()
print(total_count)
print(e-s)
if __name__ == '__main__':
#run111() #3.05s
run222() #0.13s