这篇文章主要给大家介绍了关于关系型数据库快速插入千万条数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一.创建数据库
二.创建表
1.创建 dept表
创建表“部门”(
` id ' int(11)不为空,
“深度”媒体(9)默认为空,
` dname ' varchar(20)默认为空,
` loc ' varchar(13)默认为空,
主键(` id `)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.创建emp表
创建表“电磁脉冲”(
` id ' int(11)不为空,
empon媒体(9)默认空注释'编号,
' ename ' varchar(20)默认为空,
` job ' varchar(9)默认为空,
“经理”媒体(9)默认空注释'上级编号,
日期时间默认空注释'入职时间,
' sal '十进制(7,2)默认空注释'薪水,
' comm '十进制(7,2)默认空注释'红利,
“深度媒体”( 9)默认空注释'部门编号,
主键(` id `)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
三.设置参数
SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
默认关闭。需要设置为1。因为表中设置培养基字段创建函数可能会报错
SET GLOBAL log_bin_trust_function_creators=1;
四.创建函数
1.随机产生字符串
分隔符$
创造函数RAND_STR(n INT)返回VARCHAR(255)
开始
DECLARE chars _ str VARCHAR(100)DEFAULT ' abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWXYZ ';
声明return _ str VARCHAR(255)DEFAULT " ";
声明I INT默认为0;
当我做的时候
SET return _ str=COUCAT(return _ str,SUBSTRING(chars_str,FLOOR(1 RAND()*52),1));
集合I=I ^ 1;
结束在…期间
RETURN返回_字符串
结束$
2.随机产生部门编号
分隔符$
创造函数RAND_num()返回INT(5)
开始
声明I INT默认为0;
SET I=FLOOR(100 RAND()* 10);
返回我;
结束$
五.创建存储过程
1. emp表存储过程
分隔符$
CREATE PROCEDURE insert _ EMP(IN START INT(10),IN max_num INT(10))
开始
声明I INT默认为0;
设置自动提交=0;
重复#重复
集合I=I ^ 1;
插入员工(员工,姓名,职务,经理,雇佣日期,销售,商业,部门)值((START i),RAND_STR(6),'推销员',0001,CURDATE(),2000,400,RAND _ num());
直到i=最大数量
结束重复;
提交;
结束$
2.dept表存储过程
分隔符$
创建过程insert_dept(IN START INT(10),IN max_num INT(10))
开始
声明I INT默认为0;
设置自动提交=0;
重复#重复
集合I=I ^ 1;
插入到部门(部门编号、名称、位置)值((START i),RAND_STR(10),RAND _ STR(8));
直到i=最大数量
结束重复;
提交;
结束$
六.执行
1.先执行十条
这个错误是一个小坑 发现了吗 我之前留下的 根据提示 去排查吧
执行成功!
2.查看数据
重头戏来喽! 一次性干他百万条数据 赌一把 看看会不会玩崩了
3.执行百万插入
CALL insert_dept(10001,1000000);
400跑百万数据一秒2500条我这配置太垃圾以前测试的是一秒一万最好50W跑一次
欧克睡觉
总结
到此这篇关于关系型数据库快速插入千万条数据的文章就介绍到这了,更多相关关系型数据库插入千万条数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。