mysql添加大批量数据
添加100万条数据
- 1.创建存储过程函数
- 2.创建表
- 3.执行添加数据的存储函数
1.创建存储过程函数
从上到下依次执行这些存储过程函数
#函数1:创建随机产生字符串函数
DELIMITER //
CREATE FUNCTION rand_string(n INT) RETURNS VARCHAR(255) #该函数会返回一个字符串
BEGIN DECLARE chars_str VARCHAR(100) DEFAULT 'abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ';DECLARE return_str VARCHAR(255) DEFAULT '';DECLARE i INT DEFAULT 0;WHILE i < n DOSET return_str = CONCAT(return_str,SUBSTRING(chars_str,FLOOR(1+RAND()*52),1)); SET i = i + 1;END WHILE;RETURN return_str;
END //
DELIMITER ;
如果添加第一个函数时报错,请看和下面单词是否相关,如果相关执行set开头的语句。
select @@log_bin_trust_function_creators;set GLOBAL log_bin_trust_function_creators = 1;
#函数2:创建随机数的函数
DELIMITER //
CREATE FUNCTION random_num (from_num INT ,to_num INT) RETURNS INT(11)
BEGIN
DECLARE i INT DEFAULT 0;
SET i = FLOOR(from_num+ RAND()* (to_num - from_num+1));
RETURN i;
END //
DELIMITER ;
#创建插入到课程表存储过程
DELIMITER //
CREATE PROCEDURE insert_course( max_num INT)
BEGIN
DECLARE i INT DEFAULT 0;SET autocommit = 0; # 设置手动提交事务REPEAT #循环SET i = i + 1; #赋值INSERT INTO course (course_id, course_name ) VALUES (random_num(10000, 10100), rand_string(6));UNTIL i = max_numEND REPEAT;COMMIT; #提交事务
END //
DELIMITER ;
#创建插入到课程表存储过程
DELIMITER //
CREATE PROCEDURE insert_course( max_num INT)
BEGIN
DECLARE i INT DEFAULT 0;SET autocommit = 0; # 设置手动提交事务REPEAT #循环SET i = i + 1; #赋值INSERT INTO course (course_id, course_name ) VALUES (random_num(10000, 10100), rand_string(6));UNTIL i = max_numEND REPEAT;COMMIT; #提交事务
END //
DELIMITER ;
#创建插入到学生表存储过程
DELIMITER //
CREATE PROCEDURE insert_stu( max_num INT)
BEGIN
DECLARE i INT DEFAULT 0;SET autocommit = 0; # 设置手动提交事务REPEAT #循环SET i = i + 1; #赋值INSERT INTO stu_info (course_id, class_id, student_id, NAME ) VALUES (random_num(10000, 10100), random_num(10000, 10200), random_num(1, 200000), rand_string(6));UNTIL i = max_numEND REPEAT;COMMIT; #提交事务
END //
DELIMITER ;
2.创建表
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for stu_info
-- ----------------------------
DROP TABLE IF EXISTS `stu_info`;
CREATE TABLE `stu_info` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`course_id` int(11) NULL DEFAULT NULL,`class_id` int(11) NULL DEFAULT NULL,`student_id` int(11) NULL DEFAULT NULL,`NAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1000001 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`course_id` int(11) NULL DEFAULT NULL,`course_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 101 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;
3.执行添加数据的存储函数
添加100万条数据用时可能稍长,与电脑性能有关,本人电脑不到3分钟。
CALL insert_course(100);
CALL insert_stu(1000000);
mysql添加大批量数据相关推荐
- mysql增加表中数值的sql语句_sql语句--MySql添加表数据
1.数据库有三个表,分别是bd_park(停车场).bd_closed_park封闭停车场详细表,bd_park_user(停车管理员用户表). 现在bd_park表有近1000条数据库,在bd_cl ...
- python获取mysql中的数据供js调用_python 读取mysql数据至csv文件中,并发送邮件
test 代码: #coding:utf-8 ''' Created on 2019年2月18日 @author: Administrator ''' import ConfigParser impo ...
- Mysql大批量数据导入ElasticSearch
注:笔者环境 ES6.6.2.linux centos6.9.mysql8.0.三个节点.节点内存64G.八核CPU 场景: 目前Mysql 数据库数据量约10亿,有几张大表1亿左右,直接在Mysql ...
- Mysql使用存储过程快速添加百万数据
这篇文章主要介绍了Mysql使用存储过程快速添加百万数据,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 前言 为了体现不加索引和添加索引的区别, ...
- mysql创建数据库时候同时创建表空间_mysql::创建多个表空间添加记录数据会添加到哪个表空间中?...
问题:创建多个表空间添加记录数据会添加到哪个表空间中 答:后一个 drwx------ 2 mysql mysql 4.0K Apr 26 08:04 demo -rw-rw---- 1 mysql ...
- 关于处理百万级大批量数据的mysql运行几个重要点
处理大批量百万级的数据几点重要知识点: 一:设置php运行的内存配置 ini_set("memory_limit","1200M"); 在php.ini中有如下 ...
- MySQL添加、更新、删除数据
MySQL添加.更新.删除数据 1.查询数据 select * from student; 2.添加数据 insert into student values(1,"张三",&qu ...
- flink sql udf jar包_编写Hive的UDF(查询平台数据同时向mysql添加数据)
可能会有一些截图中会有错误提示,是因为本地的包一直包下载有问题,截完图已经下载好了. 创建包结构 创建一个基础信息类 所有输出到mysql数据库中的自定义MR任务的自定义key均需要实现该抽象类 代码 ...
- mysql删除新添加数据,MySQL添加、更新与删除数据
添加.更新与删除数据 添加数据 为表中所有字段添加数据 INSERT INTO 表名(字段名1,字段名2,--) VALUES(值1,值2,--); insert into 表名 values(值1, ...
最新文章
- Memcached 1.5.13 发布,支持 TLS
- Linux:centos释放缓存,查看磁盘空间大小,xxx文件夹, 查看文件夹大小,查看剩余内存,查看xxx软件位置,统计某文件夹,统计某文件夹下目录数量,查看文件夹大小,给文件夹下所有的文件赋值权限
- 实验7.3 字符串 7-7 输出大写英文字母
- 深度学习之早停策略EarlyStopping以及保存测试集准确率最高的模型ModelCheckpoint
- sqlserver两个日期之间的年数_SQL语句计算两个日期之间有多少个工作日的方法
- 高效分页的SQL技巧(以Oracle为例)
- 生活,不求深刻,只求简单。
- C++ set find 找不到本来存在的元素
- MySql字符集修改
- 随笔记--深浅拷贝问题
- 图像3尺度全小波包分解matlab,小波包分解
- 手把手教你写一个web聊天室之bookstap框架
- css文本缩进两个字符,css如何设置首行缩进2个字符
- WireShark抓Intel网卡的802.1q包
- vector的小用法
- 实验11-1-4 计算最长的字符串长度-自己的平地摔
- ACM2023SWJTU寒假选拔赛2不完全题解
- 【物联网平台篇9】使用MQTT上传图片到OneNET
- resilience4j是什么?
- 计算机上播放时没声音什么故障,新买的电脑插上耳机没有声音怎么办?具体故障原因及解决方法看这里...
热门文章
- Simple and Effective Few-Shot Named Entity Recognition with Structured Nearest Neighbor Learning
- Oracle四种去重方式
- 区块链前线@2019.2.16
- 如何做一个基于python校园教室图书馆座位预约系统毕业设计毕设作品(Django框架)
- MySQL基础学习——第一篇
- 简单教会你如何获取淘宝/天猫获得淘口令真实url
- poi导出兼容xls和xlsx时报错XmlValueDisconnectedException
- 利用 java 实现读取 excel 表格中的数据,兼容xls与xlsx以及csv格式
- wegame显示服务器维护中,【最新】Wegame登录报病毒终极解决方法
- OneNote闪退解决方案