mysql数据库实现插入千万级数据的方法
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,mysql如何实现循环插入千万级数据?1.建表:CREATE TABLE `mysql_genarate` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uui
千家信息网最后更新 2026年10月31日mysql数据库实现插入千万级数据的方法
mysql如何实现循环插入千万级数据?
1.建表:
CREATE TABLE `mysql_genarate` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uuid` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5990001 DEFAULT CHARSET=utf8
2.创建一条条循环插入的存储过程
create procedure test_two1() begin declare i int default 0; while i < 3000 do INSERT into mysql_genarate(uuid) VALUES(UUID()); set i = i + 1; end while; end #
使用 call test_two1(); 测试,3000条数据耗时74秒,如果是千万级数据,这个速度将无法忍受。
所以我在网上找了一下优化的方法,发现可以拼接批量插入的sql语句,速度提升很多;
3.优化后的存储过程
CREATE PROCEDURE insertPro(in sum INT)BEGINDECLARE count INT DEFAULT 0;DECLARE i INT DEFAULT 0;set @exesql = concat("insert into mysql_genarate(uuid) values");set @exedata = "";set count=0;set i=0;while count0 then set @exedata = SUBSTRING(@exedata, 2); set @exesql = concat("insert into mysql_genarate(uuid) values ", @exedata); prepare stmt from @exesql; execute stmt; DEALLOCATE prepare stmt;end if;end; 调用 call insertPro(3000) ,耗时零点几秒,这个速度可以接受。
接着调用 call insertPro(30000000) ;测试3000万条数据插入,结果耗时1824.203s(30分钟)。个人电脑这个速度可以了。
另外,采用java多线程同时拼接sql,每10000条提交一次的方式,在8个线程同时运行的情况下,3000万条数据插入耗时336s,1亿条数据插入耗时1087s。
以上就是mysql如何实现循环插入千万级数据的详细内容,更多请关注其它相关文章!
数据
速度
循环
万条
同时
线程
过程
存储
测试
方法
个人
个人电脑
内容
就是
情况
文章
方式
更多
条条
电脑
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡豆
花魁咖啡
互联网科技公司起名
深圳恒合互联网络科技有限公司
科技平台互联网
今日互联网科技
互联网科技有限公司经营范围
互联网扶贫科技
互联网科技金融
北京互联网科技有限公司
为想互联网科技
浩特互联网科技
云电互联网科技
互联网科技有限公司 翻译
栖莱科技互联网股份有限公司
智腾互联网科技有限公司
2021互联网科技公司排名
江苏苏星互联网科技有限公司
九思连强互联网电子科技有限公司
河南商务圈互联网科技有限公司
花魁咖啡
互联网科技
上海挚品互联网科技有限公司
互联网科技资迅
中资互联网科技
互联网 科技
艾特科技互联网
长亮科技 互联网金融
互联网企业和科技型企业
未来五年的互联网科技