BS模式冷链物流系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
2025/12/18 14:08:50
背景:
有个需求,需要向数据库插入300万数据,测试一个性能
这里使用存储过程来循环插入
先看第一次的插入,非常慢,十分钟只写入十几万条
delimiter$$createprocedureauto_insert1()BEGINdeclareiintdefault1;while(i<3000000)doinsertintos1values(i,'chens','male',concat('chens',i,'@qqcom'));seti=i+1;selectconcat('chens',i,'_ok');endwhile;END$$delimiter;再来看下面的,利用事务批量提交,30秒钟全部插入完成
DELIMITER$$CREATEPROCEDUREauto_insert1()BEGINDECLAREiINTDEFAULT1;DECLAREbatch_sizeINTDEFAULT10000;DECLAREmax_iINTDEFAULT3000000;SETautocommit=0;STARTTRANSACTION;WHILEi<max_iDOINSERTINTOs1VALUES(i,'chens','male',CONCAT('chens',i,'@qqcom'));SETi=i+1;IFi%batch_size=0THENCOMMIT;STARTTRANSACTION;ENDIF;ENDWHILE;COMMIT;SETautocommit=1;END$$DELIMITER;