MySQL 快速批量创建千万条数据 千万级数据

本文介绍了如何在MySQL中快速创建并批量插入千万条数据,主要步骤包括使用MyISAM存储引擎创建users表,然后通过存储过程实现WHILE循环语句进行数据插入。这种方法适用于大数据量的测试场景或性能基准测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 MySQL 快速批量创建千万条数据 千万级数据

 

一、实现思路

1、创建一张users表,数据库引擎调整为: MyISAM

2、使用存储过程实现,用循环语句,批量插入1kw次。( WHILE ... DO ... END WHILE

 

二、具体实现

1、创建users表

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(222) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
  `age` int(11) NULL DEFAULT NULL COMMENT '年龄',
  `addr` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '地址',
  `create_date` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8 COL
LATE = utf8_general_ci ROW_FORMAT = Dynamic;

2、创建 pro_users 存储过程

DROP PROCEDURE IF EXISTS pro_users ;
CREATE PROCEDURE pro_users()
BEGIN
    DECLARE count int  DEFAULT 0 ; -- 计数
	DECLARE max int ; -- 插入数据条数
	SET max = 10000000 ;
	
	-- 开始执行循环
	WHILE count < max  DO
		INSERT INTO `users` ( `name`, `age`, `addr`, `create_date` )
		VALUES	(CONCAT('小明',(LAST_INSERT_ID()+1)), 18, CONCAT('北京市',(LAST_INSERT_ID()+1)), NOW() );			
    	SET count = count + 1; 
	END WHILE;
	
END ;

3、调用存储过程: call pro_users();

 

4、查看数据: SELECT * FROM users ;

 

 

三、总结

1、存储过程实现,注意需要将表的ENGINE 设置为:MyISAM

 

2、存储过程中,使用循环语句实现, WHILE , REPEAT , LOOP 任意一种都可以。

 

 

参考资料:MySQL存储引擎InnoDB与Myisam的六大区别

          https://thinkcode.blog.csdn.net/article/details/102913056

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值