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安全错误
数据库的锁怎样保障安全
互联网科技公司排名
互联网下的科技发展
广州互联网科技公司
互联网科技公司发展
互联网科技集团
齐家互联网科技
友谊互联网络科技
互联网科技logo
卫星互联网科技股票
温州喔噻互联网科技有限公司
互联网科技产业特征
四川互联网展示科技馆设计
互联网科技融合创新
江苏互联网智能科技产品出厂价
易租星互联网科技有限公司
银川新华互联网科技学校原画
求路客互联网科技电话
数字科技和互联网金融哪个好
互联网科技企业文化
株洲百竞科技的互联网营销顾问
华服互联网科技怎么样
西安互联网科技
远拓互联网科技
壹账通互联网科技
互联网金融监管科技
济南和联互联网科技有限公司
上海宁丞科技互联网
工业互联网等科技实现智能化赋能
互联网科技大赛获奖感言
易企秀互联网科技是做什么的