config ={'host': 'localhost','port': 3306,'database': 'test','user': 'root','password': '1234qwer','charset': 'utf8'}
conn= pymysql.connect(**config)
cur=conn.cursor()deftimer(fn):def_wrapper(count):
start=time.time()
fn(count)
seconds= time.time() -startprint(u"{func}函数每 {count} 条数数据写入耗时 {sec}秒".format(func=fn, count=count, sec=seconds))return_wrapper#普通写入
@timerdefordinary_insert(count):
sql= "insert into students1 (name, age, sex,id,cellphone,address,score) values ('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66')"
for i inrange(count):
cur.execute(sql)#批量处理
@timerdefmany_insert(count):
sql= "insert into students1 (name, age, sex,id,cellphone,address,score)values(%s,%s,%s,%s,%s,%s,%s)"loop= count / 20stus= (('tom666','66','boy','10066','13900000066','shanghai','66'),('tom666','66','boy','10066','13900000066','shanghai','66'),
('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66'),('tom666','66','boy','10066','13900000066','shanghai','66'),
('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66'),('tom666','66','boy','10066','13900000066','shanghai','66'),
('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66'),('tom666','66','boy','10066','13900000066','shanghai','66'),
('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66'),('tom666','66','boy','10066','13900000066','shanghai','66'),
('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66'),('tom666','66','boy','10066','13900000066','shanghai','66'),
('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66'),('tom666','66','boy','10066','13900000066','shanghai','66'),
('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66'),('tom666','66','boy','10066','13900000066','shanghai','66'),
('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66'),('tom666','66','boy','10066','13900000066','shanghai','66'),
('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66'),('tom666','66','boy','10066','13900000066','shanghai','66'))for i inrange(int(loop)):
cur.executemany(sql, stus)#事务处理
@timerdeftransaction_insert(count):
sql= "insert into students1 (name, age, sex,id,cellphone,address,score)values(%s,%s,%s,%s,%s,%s,%s)"stus= ('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66')if count >0:try:for i inrange(count):
cur.execute(sql, stus)exceptException as e:
conn.rollback()#事务回滚
print('事务处理失败', e)else:
conn.commit()#事务提交
print('事务处理成功, 关闭连接', cur.rowcount)
cur.close()
conn.close()else:print("输入的count有问题,无法执行数据库操作!")deftest_insert(count):
ordinary_insert(count)
many_insert(count)
transaction_insert(count)
test_insert(20)