0
点赞
收藏
分享

微信扫一扫

MySQL5.7使用存储过程快速插入100w条数据

googlefrank 2022-03-14 阅读 94


echo编辑整理

DROP PROCEDURE IF EXISTS insert_clear_metch;
DELIMITER $$
CREATE PROCEDURE insert_clear_metch (IN loop_times INT)
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i < loop_times DO
SET i = i + 1;
INSERT INTO `tablename`(`id`, `column1`) VALUES (i, i);
END WHILE;
END $$

CALL insert_clear_metch (1000000);

以上代码实测太慢,插入100w条估计要一天,下面这种写法能快几百倍

不更新id,让id保持自增

DROP PROCEDURE IF EXISTS insert_clear_metch;
DELIMITER $$
CREATE PROCEDURE insert_clear_metch (IN loop_times INT)
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i < loop_times DO
SET i = i + 1;
INSERT INTO `tablename`(`column1`, `column2`) VALUES (i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i),(i, i);
END WHILE;
END $$

CALL insert_clear_metch (1000000);

注意各版本对存储过程的支持稍有不同



举报

相关推荐

0 条评论