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安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司
科技股互联网
互联网科技保险
互联网科技有限公司经营范围
互联网科技公司税收优惠
北京互联网科技公司
互联网科技论文
北京禾田雨橡互联网科技
天速互联网络科技有限公司
宁夏科技产业互联网案例
互联网科技产业特征
呼和浩特新华互联网科技学院
国大互联网教育科技有限公司工作
小米互联网科技园入驻
伍佰万互联网科技怎么赚钱
工业互联网科技成果转化
互联网硬科技公司
萌小萌互联网科技河南有限公司
互联网时代高科技布局
前海云享互联网科技
互联网通讯科技
礼当家互联网科技
九亚互联网科技
互联网金融科技创新
华中科技大学互联网
广州互联网络科技有限公司
栖莱科技互联网股份有限公司
互联网科技大赛获奖感言
富国互联网科技002692
上海互联网科技园景观