mysql快速添加百万条记录(Mysql快速插入千万条数据的实战教程)
类别:数据库 浏览量:232
时间:2021-10-22 07:37:09 mysql快速添加百万条记录
Mysql快速插入千万条数据的实战教程一.创建数据库
二.创建表
1.创建 dept表
|
create table `dept` ( `id` int (11) not null , `deptno` mediumint(9) default null , `dname` varchar (20) default null , `loc` varchar (13) default null , primary key (`id`) ) engine=innodb default charset=utf8; |
2.创建emp表
|
create table `emp` ( `id` int (11) not null , `empon` mediumint(9) default null comment '编号' , `ename` varchar (20) default null , `job` varchar (9) default null , `mgr` mediumint(9) default null comment '上级编号' , `hirdate` datetime default null comment '入职时间' , `sal` decimal (7,2) default null comment '薪水' , `comm` decimal (7,2) default null comment '红利' , `deptno` mediumint(9) default null comment '部门编号' , primary key (`id`) ) engine=innodb default charset=utf8; |
三.设置参数
show variables like 'log_bin_trust_function_creators';
默认关闭. 需要设置为1。因为表中设置 mediumint 字段 创建函数可能会报错
set global log_bin_trust_function_creators=1;
四.创建函数
1.随机产生字符串
|
delimiter $ create function rand_str(n int ) returns varchar (255) begin declare chars_str varchar (100) default 'abcdefghijklmnopqrstuvwsyzabcdefghijklmnopqrstuvwxyz' ; declare return_str varchar (255) default '' ; declare i int default 0; while i< n do set return_str =coucat(return_str, substring (chars_str,floor(1+rand()*52),1)); set i= i+1; end while; return return_str; end $ |
2.随机产生部门编号
|
delimiter $ create function rand_num() returns int (5) begin declare i int default 0; set i= floor(100+rand()*10); return i; end $ |
五.创建存储过程
1. emp表存储过程
|
delimiter $ create procedure insert_emp( in start int (10), in max_num int (10)) begin declare i int default 0; set autocommit = 0; repeat #重复 set i = i + 1; insert into emp(empon,ename,job,mgr,hiredate,sal,comm,depton) values ((start+i),rand_str(6), 'salesman' ,0001,curdate(),2000,400,rand_num()); until i = max_num end repeat; commit ; end $ |
2.dept表存储过程
|
delimiter $ create procedure insert_dept( in start int (10), in max_num int (10)) begin declare i int default 0; set autocommit = 0; repeat #重复 set i = i + 1; insert into dept(deptno,dname,loc) values ((start+i),rand_str(10),rand_str(8)); until i = max_num end repeat; commit ; end $ |
六.执行
1.先执行十条
这个错误是一个小坑 发现了吗 我之前留下的 根据提示 去排查吧
执行成功!
2.查看数据
重头戏来喽! 一次性干他百万条数据 赌一把 看看会不会玩崩了
3.执行百万插入
call insert_dept(10001,1000000);
400s跑百万数据 一秒2500条 我这配置太垃圾 以前测试的是一秒一万 最好50w跑一次
欧克 睡觉
总结
到此这篇关于mysql快速插入千万条数据的文章就介绍到这了,更多相关mysql插入千万条数据内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/LiuY521/article/details/114273793
您可能感兴趣
- mysql查询慢有哪些原因(MySQL 查询速度慢的原因)
- 终于有人将mysql 索引讲清楚了(MySQL 索引的一些细节分享)
- MySQL与Oracle数据类型对应关系
- mysql数据库导入错误怎么处理(MySQL数据库导入导出数据之报错解答实例讲解)
- mysql创建存储过程的代码(MySQL修改存储过程的详细步骤)
- mysql连接查询原理(MySQL连接查询你真的学会了吗?)
- zabbix监控sql server集群(zabbix 监控mysql的方法)
- 怎样查看mysql的安装路径(MySQL中查看数据库安装路径的方法)
- 查看mysql执行计划关键字(带你学习MySQL执行计划)
- mysql主从复制时突然来了一批数据(MySQL主从复制断开的常用修复方法)
- SQL SERVER与MySQL数据类型的对应关系
- mysql数据库下载安装步骤(MySQL数据库压缩版本安装与配置详细教程)
- 查看mysql索引缓存(MySQL查询缓存的小知识)
- mysql事务未提交会锁表吗(Mysql事务中Update是否会锁表?)
- mysql创建用户并给用户授权(MySQL 主从复制中创建复制用户的时机探讨)
- python导出数据到mysql(python定时按日期备份MySQL数据并压缩)
- 于正又推女性古装大剧 杨蓉乔欣演女配,两位女主成 重头戏(于正又推女性古装大剧)
- 乔欣古装女主戏获热度 作为女主,却没吃到红利(乔欣古装女主戏获热度)
- 爱情是什么(爱情是什么最经典的话)
- 乔欣 古装剧中的高颜值(古装剧中的高颜值)
- 怎么才可以财富自由(如何让自己实现财富自由)
- 为什么越来越多年轻人回农村(为什么越来越多年轻人回农村生活)
热门推荐
- python语言翻译中文(浅析Python 实现一个自动化翻译和替换的工具)
- sql server删除曾经登录过的登录名
- kubernetes最优pod数(详解kubernetes pod的编排和生命周期)
- html5标签怎么做(html5用video标签流式加载的实现)
- django框架基础之路由详解(详解Django中CBVClass Base Views模型源码分析)
- css3过渡技巧视频(css3过渡_动力节点Java学院整理)
- sw动态注解视图干嘛的(Swoole 5将移除自动添加Event::wait特性详解)
- TransactionScope的使用
- python基础知识重点(python语言元素知识点详解)
- css3实现3d效果教程(CSS3实现简易版的刮刮乐效果)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9