0
点赞
收藏
分享

微信扫一扫

pymysql【真假】批量写入


环境说明:

PyMySQL==1.0.2
python3.8

模型

 CREATE TABLE `test` (
`id` int(11) NOT NULL COMMENT "",
`name` varchar(20) NULL DEFAULT "" COMMENT "",
`num` int(11) NULL DEFAULT "0" COMMENT ""
)

单条写入和多条写入

单条写入

insert into test(id,name,num)values(1,'a',1);
insert into test(id,name,num)values(2,'b',2);

多条写入

insert into test(id,name,num)values(1,'a',1),(2,'b',2);

本次测试目标


 executemany如何是真正意义上的批量写入


测试1

 #构造数据和sql
initDatas = [[1,1,"a"],[2,2,"b"]]
insertSql = "insert into test(id,name,num) values(%s,%s,%s)"

#执行批量写入
rows = cursor.executemany(insertSql,initDatas)

查看写入日志

pymysql【真假】批量写入_pymysql

 

测试1结论

数据是批量写入

测试2

#构造数据和sql
initDatas = [[3,3],[4,4]]
insertSql = "insert into test(id,name,num) values(%s,'tom',%s)"

#执行批量写入
rows = cursor.executemany(insertSql,initDatas)

查看写入日志

pymysql【真假】批量写入_executemany_02

 

测试2结论

数据是批量写入

为了实现批量写入和传值,将需要传入的值写入二维数据表中

测试3


 


#构造数据和sql
initDatas = [[5,'tom',5],[6,'tom',6]]
insertSql = "insert into test(id,name,num) values(%s,%s,%s)"

#执行批量写入
rows = cursor.executemany(insertSql,initDatas)

查看写入日志

pymysql【真假】批量写入_pymysql_03

 

测试3结论

数据是批量写入

最后

        本次测试使用的不是mysql数据库,而是一款分布式数据库,正好可以通过日志检测到数据写入变化。

        批量写入的性能会远远大于单条写入,pymysql中没有参数可以设置是否批量写入。

举报

相关推荐

0 条评论