mysql如何实现循环插入千万级数据


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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 count<sum do

    set @exedata = concat(@exedata, ",(UUID())");

    set count=count+1;

    set i=i+1;    if i%1000=0

    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;

        set @exedata = "";    end if;end while;if length(@exedata)>0 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教程


以上就是mysql如何实现循环插入千万级数据的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

25行实现mysql树查询代码详解

深入理解mysql索引原理及实现,快速检索数据库

mysql视图如何修改

mysql里面字段是什么意思?

mysql5.7单实例自启动服务配置过程

centos下mysql安装图文教程

mysql如何计算相邻两行某列差值

mysql通过查询结果集更新数据的方法介绍

详解mysql 整体结构

mysql语句入门详解

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...