首先创建表:
CREATE TABLE `student` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_bin NOT NULL,
`age` int(11) NOT NULL,
`class_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `indx_class_id` (`class_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
对student表批量插入20万条数据:
DROP PROCEDURE IF EXISTS BatchInsert;
delimiter // -- 把界定符改成双斜杠
CREATE PROCEDURE BatchInsert(IN init INT, IN loop_time INT) -- 第一个参数为初始ID号(可自定义),第二个位生成MySQL记录个数
BEGIN
DECLARE Var INT;
DECLARE ID INT;
SET Var = 0;
SET ID = init;
WHILE Var < loop_time DO
insert into student(id, name, age, class_id) values (ID, CONCAT('wang', ID), 20, ID);
SET ID = ID + 1;
SET Var = Var + 1;
END WHILE;
END;
//
delimiter ; -- 界定符改回分号
CALL BatchInsert(1, 200000); -- 调用存储过程插入函数
20万条数据插入到数据库,仅需几分钟,很方便我们做性能测试!