MySQL循环插入千万级数据
1、创建测试表
CREATETABLE`mysql_genarate`( `id`int(11)NOTNULLAUTO_INCREMENT, `uuid`varchar(50)DEFAULTNULL, PRIMARYKEY(`id`) )ENGINE=InnoDBAUTO_INCREMENT=5999001DEFAULTCHARSET=utf8;
2、创建一个循环插入的存储过程
CREATEDEFINER=`root`@`localhost`PROCEDURE`test_two1`() BEGIN DECLAREiINTDEFAULT0; WHILEi<3000DO INSERTINTOmysql_genarate(uuid)VALUES(UUID()); SETi=i+1; ENDWHILE; END
调用测试calltest_two1(),测试10000条数据耗时几分钟,如果是千万级数据,这个速度将无法忍受。
3、优化存储过程
使用批量插入的sql语句
CREATEDEFINER=`root`@`localhost`PROCEDURE`insertPro`(INsumINT)
BEGIN
DECLAREcountINTDEFAULT0;
DECLAREiINTDEFAULT0;
SET@exesql=concat("insertintomysql_genarate(uuid)values");
SET@exedata="";
SETcount=0;
SETi=0;
WHILEcount0THEN
SET@exedata=SUBSTRING(@exedata,2);
SET@exesql=concat("insertintomysql_genarate(uuid)values",@exedata);
PREPAREstmtFROM@exesql;
EXECUTEstmt;
DEALLOCATEPREPAREstmt;
ENDIF;
END
调用callinsertPro(10000),耗时零点几秒,这个速度可以接受。
以上就是MySQL循环插入千万级数据的详细内容,更多关于MySQL循环插入的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
热门推荐
10 财运虎年祝福语简短语
11 单亲爸爸春节祝福语简短
12 狗狗上厕所训练
13 植物种植祝福语简短
14 翻译考试祝福语朋友简短
15 个人周年庆简短祝福语
16 狗狗怎么训练
17 分别祝福语简短搞笑英文
18 生日广州男生祝福语简短