mysql数据库实现插入千万级数据的方法
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,mysql如何实现循环插入千万级数据?1.建表:CREATE TABLE `mysql_genarate` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uui
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
应用软件开发正规平台
政务网络安全概念股
刷卡器服务器超时10098
2020网络安全心得体会
简述服务器虚拟化核心技术
学校国家网络安全周宣传设计
数据库日志dos
网络安全小视频软件
方舟手游私人服务器管理密码
超融合怎么建服务器
网络技术人员超过一定年龄
工作室与软件开发
常用服务器操作系统
365仿真实验服务器
学校开展网络安全知识
服务器管理的原则
看门狗2游戏内连接服务器
方舟进化生存主服务器连接失败
天津红桥区网络安全厂家
网络安全概念股走势
ssh框架双连接数据库
网络安全管理措施落实情况
图像修复数据库
西安软件开发软件班
wps表格局域网连接sql数据库
香港理工大学掌静脉数据库
网络安全文图发布管控原理
趣猫玩软件开发方案
数据库年龄小于等于
宾智互联网科技有限责任公司