添加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添加大批量数据相关推荐

  1. mysql增加表中数值的sql语句_sql语句--MySql添加表数据

    1.数据库有三个表,分别是bd_park(停车场).bd_closed_park封闭停车场详细表,bd_park_user(停车管理员用户表). 现在bd_park表有近1000条数据库,在bd_cl ...

  2. python获取mysql中的数据供js调用_python 读取mysql数据至csv文件中,并发送邮件

    test 代码: #coding:utf-8 ''' Created on 2019年2月18日 @author: Administrator ''' import ConfigParser impo ...

  3. Mysql大批量数据导入ElasticSearch

    注:笔者环境 ES6.6.2.linux centos6.9.mysql8.0.三个节点.节点内存64G.八核CPU 场景: 目前Mysql 数据库数据量约10亿,有几张大表1亿左右,直接在Mysql ...

  4. Mysql使用存储过程快速添加百万数据

    这篇文章主要介绍了Mysql使用存储过程快速添加百万数据,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 前言 为了体现不加索引和添加索引的区别, ...

  5. mysql创建数据库时候同时创建表空间_mysql::创建多个表空间添加记录数据会添加到哪个表空间中?...

    问题:创建多个表空间添加记录数据会添加到哪个表空间中 答:后一个 drwx------ 2 mysql mysql 4.0K Apr 26 08:04 demo -rw-rw---- 1 mysql ...

  6. 关于处理百万级大批量数据的mysql运行几个重要点

    处理大批量百万级的数据几点重要知识点: 一:设置php运行的内存配置 ini_set("memory_limit","1200M"); 在php.ini中有如下 ...

  7. MySQL添加、更新、删除数据

    MySQL添加.更新.删除数据 1.查询数据 select * from student; 2.添加数据 insert into student values(1,"张三",&qu ...

  8. flink sql udf jar包_编写Hive的UDF(查询平台数据同时向mysql添加数据)

    可能会有一些截图中会有错误提示,是因为本地的包一直包下载有问题,截完图已经下载好了. 创建包结构 创建一个基础信息类 所有输出到mysql数据库中的自定义MR任务的自定义key均需要实现该抽象类 代码 ...

  9. mysql删除新添加数据,MySQL添加、更新与删除数据

    添加.更新与删除数据 添加数据 为表中所有字段添加数据 INSERT INTO 表名(字段名1,字段名2,--) VALUES(值1,值2,--); insert into 表名 values(值1, ...

最新文章

  1. Memcached 1.5.13 发布,支持 TLS
  2. Linux:centos释放缓存,查看磁盘空间大小,xxx文件夹, 查看文件夹大小,查看剩余内存,查看xxx软件位置,统计某文件夹,统计某文件夹下目录数量,查看文件夹大小,给文件夹下所有的文件赋值权限
  3. 实验7.3 字符串 7-7 输出大写英文字母
  4. 深度学习之早停策略EarlyStopping以及保存测试集准确率最高的模型ModelCheckpoint
  5. sqlserver两个日期之间的年数_SQL语句计算两个日期之间有多少个工作日的方法
  6. 高效分页的SQL技巧(以Oracle为例)
  7. 生活,不求深刻,只求简单。
  8. C++ set find 找不到本来存在的元素
  9. MySql字符集修改
  10. 随笔记--深浅拷贝问题
  11. 图像3尺度全小波包分解matlab,小波包分解
  12. 手把手教你写一个web聊天室之bookstap框架
  13. css文本缩进两个字符,css如何设置首行缩进2个字符
  14. WireShark抓Intel网卡的802.1q包
  15. vector的小用法
  16. 实验11-1-4 计算最长的字符串长度-自己的平地摔
  17. ACM2023SWJTU寒假选拔赛2不完全题解
  18. 【物联网平台篇9】使用MQTT上传图片到OneNET
  19. resilience4j是什么?
  20. 计算机上播放时没声音什么故障,新买的电脑插上耳机没有声音怎么办?具体故障原因及解决方法看这里...

热门文章

  1. Simple and Effective Few-Shot Named Entity Recognition with Structured Nearest Neighbor Learning
  2. Oracle四种去重方式
  3. 区块链前线@2019.2.16
  4. 如何做一个基于python校园教室图书馆座位预约系统毕业设计毕设作品(Django框架)
  5. MySQL基础学习——第一篇
  6. 简单教会你如何获取淘宝/天猫获得淘口令真实url
  7. poi导出兼容xls和xlsx时报错XmlValueDisconnectedException
  8. 利用 java 实现读取 excel 表格中的数据,兼容xls与xlsx以及csv格式
  9. wegame显示服务器维护中,【最新】Wegame登录报病毒终极解决方法
  10. OneNote闪退解决方案