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
您可能感兴趣
- python操作mysql连接池(详解Python连接MySQL数据库的多种方式)
- mysql主键为什么用varchar(Mysql中varchar类型一些需要注意的地方)
- mysql行级锁使用教程(浅析MySQL的lru链表)
- mysql最佳配置(详解DBeaver连接MySQL8以上版本以及解决可能遇到的问题)
- mysql时间戳和datetime对比(mysql中 datatime与timestamp的区别说明)
- 利用xampp搭建服务器(xampp集成环境怎样使用MySQL数据库)
- mysql出现锁表的原因(导致MySQL做全表扫描的几种情况)
- mysql常用存储方案及基本原理(详解分析MySQL8.0的内存消耗)
- MySQL 使用事件(Events)完成计划任务(MySQL 使用事件Events完成计划任务)
- mysql客户端怎么运行程序(MySQL 如何连接对应的客户端进程)
- mysql数据库简单优化(MySQL数据类型优化原则)
- mysql底层原理是什么(MySQL 页完全指南—浅入深出页的原理)
- mysqlsql语句的优化(MySQL优化之如何写出高质量sql语句)
- 怎样查看mysql的安装路径(MySQL中查看数据库安装路径的方法)
- mysql提高分页效率(MySQL优化教程之超大分页查询)
- mysql整体架构设计(MySQL 整体架构介绍)
- 26岁杨紫的白素贞遇上24岁鞠婧祎,哪个最美(26岁杨紫的白素贞遇上24岁鞠婧祎)
- 鞠婧祎和杨紫两种风格的女生,你心里谁比较美(鞠婧祎和杨紫两种风格的女生)
- 三千年第一美女鞠婧祎出演白素贞pk杨紫,颜值胜赵雅芝王祖贤(三千年第一美女鞠婧祎出演白素贞pk杨紫)
- 成都轨道交通13号线一期工程最新进展(成都轨道交通13号线一期工程最新进展)
- 越南没事(越南没事情做)
- 重庆旅游攻略(重庆旅游3-4天攻略最佳线路)
热门推荐
- python csv文件读取方法(对python读取zip压缩文件里面的csv数据实例详解)
- webpack打包后css路径(Webpack 中 css import 使用 alias 相对路径的方法)
- css快速开发(纯 CSS 撸一个漂亮的加载)
- angular封装进度条组件(如何用DevUI搭建自己的Angular组件库)
- docker容器启动后怎么进入(Docker 退出container后保持继续运行的操作)
- zabbix监控网络线路(分布式监控系统之Zabbix 使用SNMP、JMX信道采集数据的原理解析)
- mysqldump备份缺点(MySQL5.7 mysqldump备份与恢复的实现)
- 哪些属性可以具体描述css盒模型(浅谈CSS中盒模型的理解)
- 协程在python中怎么使用(python协程之动态添加任务的方法)
- 微信小程序开发简单计算器(小程序实现计算器功能)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9