mysql 插入1000w条数据

以下是关于如何在mysql中创建1kw数据量的数据库、表和存储过程的详细指南。我们将使用sql语句来实现这一目标,并保持原文的语言和结构,同时对内容进行伪原创处理。

首先,我们将创建一个名为

bigData

的数据库,并在其中创建两个表:

dept

(部门表)和

emp

(员工表)。然后,我们将定义两个存储函数和两个存储过程来插入大量数据。

创建数据库和表

-- 创建1KW数据量的数据库CREATE DATABASE bigData;

-- 部门表DROP TABLE IF EXISTS

dept;CREATE TABLE 
dept

(

id

INT(11) NOT NULL AUTO_INCREMENT COMMENT '部门id',

deptno

MEDIUMINT(9) NOT NULL DEFAULT '0' COMMENT '部门编号',

dname

VARCHAR(20) NOT NULL DEFAULT '' COMMENT '部门名称',

loc

VARCHAR(14) NOT NULL DEFAULT '' COMMENT '楼层',PRIMARY KEY (

id

)) ENGINE=InnoDB AUTO_INCREMENT=600001 DEFAULT CHARSET=utf8;

-- 员工表DROP TABLE IF EXISTS

emp

;CREATE TABLE

emp

(

id

INT(11) NOT NULL AUTO_INCREMENT COMMENT '员工主键id',

empno

MEDIUMINT(11) NOT NULL DEFAULT '0' COMMENT '员工编号',

ename

VARCHAR(20) NOT NULL COMMENT '员工姓名',

job

VARCHAR(9) NOT NULL DEFAULT '' COMMENT '工作',

mgr

MEDIUMINT(9) NOT NULL DEFAULT '0' COMMENT '上级编号',

hiredate

DATE NOT NULL COMMENT '入职时间',

sal

DECIMAL(7,2) DEFAULT NULL COMMENT '薪水',

comm

MEDIUMINT(9) NOT NULL DEFAULT '0' COMMENT '红利',

deptno

MEDIUMINT(9) NOT NULL DEFAULT '0' COMMENT '部门编号',PRIMARY KEY (

id

)) ENGINE=InnoDB AUTO_INCREMENT=12387608 DEFAULT CHARSET=utf8;

创建存储函数

接下来,我们定义一个存储函数

rand_string

,用于生成指定长度的随机字符串。

-- 创建一个生成指定长度随机字符串的函数DELIMITER $$CREATE FUNCTION rand_string(n INT) RETURNS VARCHAR(255)BEGINDECLARE chars_str VARCHAR(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';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 ;

创建存储过程

我们将定义两个存储过程来向

emp

dept

表中插入大量数据。

怪兽AI数字人 怪兽AI数字人

数字人短视频创作,数字人直播,实时驱动数字人

怪兽AI数字人 44 查看详情 怪兽AI数字人

-- 定义存储过程,用于向emp表中插入大量数据-- start 开始数,max_length 最大长度DELIMITER $$CREATE PROCEDURE insert_emp(IN start INT(10), IN max_length INT(10))BEGINDECLARE i INT DEFAULT 0;SET autocommit = 0;REPEATSET i = i + 1;INSERT INTO emp(empno, ename, job, mgr, hiredate, sal, comm, deptno)VALUES ((start+i), rand_string(6), 'SALESMAN', 0001, CURDATE(), FLOOR(RAND()  10000), 400, FLOOR(RAND() * 100));UNTIL i = max_length END REPEAT;COMMIT;END $$DELIMITER ;

-- 向emp表中插入1000万条数据CALL insert_emp(1000, 10000000);

-- 定义存储过程,用于向dept表中插入大量数据-- start 开始数,max_length 最大长度DELIMITER $$CREATE PROCEDURE insert_dept(IN start INT(10), IN max_length INT(10))BEGINDECLARE i INT DEFAULT 0;SET autocommit = 0;REPEATSET i = i + 1;INSERT INTO dept(deptno, dname, loc)VALUES (FLOOR(RAND() * 1000), rand_string(10), rand_string(8));UNTIL i = max_length END REPEAT;COMMIT;END $$DELIMITER ;

-- 向dept表中插入10万条数据CALL insert_dept(1000, 100000);

mysql 插入1000w条数据

通过以上步骤,我们成功创建了数据库、表,并定义了存储函数和存储过程来插入大量数据。这种方法可以有效地生成大规模的数据集,用于测试和开发目的。

以上就是mysql 插入1000w条数据的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/599806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月10日 20:02:54
下一篇 2025年11月10日 20:04:20

相关推荐

发表回复

登录后才能评论
关注微信