一、关闭自动提交,插入后再提交
一次插入多条数据时,可以先关闭自动提交
mysql_autocommit(&myCont,0);
待数据插入完成后再进行提交
mysql_commit(&myCont);
示例代码:
mysql_autocommit(&myCont,0);
for(inti=0; i<10000; i++)
{
mysql_query(&mysql,strsql.c_str());
}
mysql_commit(&myCont);
二、开启事务再提交
示例代码:
mysql_query(&mysql,"START TRANSACTION");//开启事务
for(inti=0; i<10000; i++)
{
mysql_query(&mysql,strsql.c_str());
}
mysql_query(&mysql,"COMMIT"); // 提交事务
三、结果测试
插入3个字段的books数据表
id int,
author varchar,
title varchar
10000条数据,第一种方法用时900ms, 第二种方法用时600ms
如果不进行优化直接进行数据库插入,实测200条用了8439ms,对应的10000条,用时约为421950ms。(可能是本人使用的台式机是机械硬盘,所以读写速度会比较低)。
可以看出,优化还是很有效果的。
参考:
https://dev.mysql.com/doc/refman/5.6/en/mysql-autocommit.html
https://blog.csdn.net/fcsfcsfcs/article/details/78003121
https://www.cnblogs.com/crazyant/archive/2012/04/25/2469572.html