这篇文章主要给大家介绍了关于关系型数据库快速插入千万条数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一.创建数据库二.创建表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跑一次
欧克睡觉
总结到此这篇关于关系型数据库快速插入千万条数据的文章就介绍到这了,更多相关关系型数据库插入千万条数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!