MySQL批量插入1000w条数据

news/2024/11/16 16:53:52/

一、概述

在一些实际的测试、运维过程中,往往需要向数据库插入大量数据,利用存储过程是一个不错的选择
本次采用MySQL5.7,模拟实际批量插入1000w条随机数据

二、创建库

 mysql -uroot -p密码create database bigdata;use bigdata

三、创建表

drop table if exists user;
create table user(id int not null primary key auto_increment,number int not null,name varchar(20) not null
)engine=innodb default charset=utf8;

四、创建函数

生成随机学号

#用于随机产生学号

DELIMITER $
CREATE FUNCTION rand_number() RETURNS INT
BEGINDECLARE i INT DEFAULT 0;SET i= FLOOR(1+RAND()*100);RETURN i;
END $
DELIMITER ;

生成随机姓名(字符串)

DELIMITER $
CREATE FUNCTION rand_name(n INT) RETURNS VARCHAR(255)
BEGINDECLARE chars_str VARCHAR(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';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 ;

五、创建存储过程

DELIMITER $
CREATE PROCEDURE insert_user(IN max_num INT(10))
BEGINDECLARE i INT DEFAULT 0;DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK; START TRANSACTION;while i < max_num doinsert into user(id,number,name) values(null,rand_number(),rand_name(5));set i = i + 1;
END WHILE;
COMMIT;
END $
DELIMITER ;

六、调用

call insert_user(1000*10000);

七、查看

select count(*) from user;
select * from user;

http://www.ppmy.cn/news/735682.html

相关文章

MySQL线上环境单表1000w数据增加字段怎么玩

http://www.gameboys.cn/article/163 向一个 1000w 数据的线上业务表里新加字段&#xff0c;怎么操作&#xff1f; 本地测试及正确解决方案&#xff1a; 1.准备测试环境 MySQL 测试环境 系统&#xff1a;Linux centos 6.8 内存&#xff1a;2G 内存 CPU:2 核 CPU 硬盘&…

如何从数据库加载1000w数据

这篇文章主要讲解 如何从数据库加载1000w数据 加载大量数据 例子&#xff1a;将1000w的数据从数据库导入到redis中 在mysql中的实现方法&#xff1a;1、limit 分页 2、游标 limit 分页 问题&#xff1a; 当offset很大时&#xff0c;mysql需要做大量的文件排序操作&#x…

Mysql 数据库 第十六节 存储过程 1000w 数据的插入

存储过程 1. 一组 可编程的函数&#xff0c; 是为了完成特定功能的 SQL语句集 储存过程就是具有名字的 一段代码&#xff0c;用来完成特定功能 2. 为什么要是用 存储过程 将 重复性很高的一些操作&#xff0c;封装到一个存储过程中&#xff0c; 简化了 对这些 SQL 的调用 批量…

Redis 中 hash 存储和获取

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 前言 最近做了个需求&#xff0c;需要用到 Redis 中 hash 存储和获取&#xff0c;记录一下使用方法。 import com.a…

编译Android平台的OpenCV库并启用OpenCL及Contrib

1.下载好OpenCV与OpenCV_Contirb 版本: 4.7 编译主机系统: Ubuntu 20.04 LTS 准备环境与工具: ANDRIOD SDK 与 NDK ,CMAKE ,NINJA ,GCC,G++ ,MAKE 开始编译: ../opencv/platforms/android/build_sdk.py --extra_modules_path=../opencv_contrib/modules --no_samples_bu…

华硕 触摸板关闭以及开启

关闭&#xff1a;fnf9 开启&#xff1a;再次fnf9

关闭华硕笔记本触摸屏

刚开始用华硕专有的快捷键FnF9&#xff0c;尝试无效&#xff1b; 卸载鼠标驱动后&#xff0c;笔记本上的键盘功能也失效了&#xff1b; 重启电脑不能用键盘输入密码&#xff0c;启用屏幕键盘进去了&#xff0c;重装驱动&#xff1b; 在BIOS中关闭触屏键盘&#xff1a; 在advanc…