每天每天
越来越爱

往mysql数据库添加大量数据 mysql 写入 100w数据

性能测试需求测试删除接口时需要准备大量数据或者逻辑删除。考虑到服务已经发布,不想再次重新打包发布等操作,直接添加数据库数据。

直接上sql


-- 创建存储过程
DELIMITER $$
CREATE PROCEDURE InsertEmptyData()
BEGIN
    DECLARE i INT DEFAULT 0;
    SET autocommit = 0;

    WHILE i < 100 DO -- 100批,每批1万行
        SET @sql = CONCAT('INSERT INTO test () VALUES ',
            REPEAT('(),', 9999), '()'); -- 1万行

        PREPARE stmt FROM @sql;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;

        SET i = i + 1;
        COMMIT; -- 每批提交一次
    END WHILE;

    SET autocommit = 1;
END$$
DELIMITER ;

-- 执行存储过程
CALL InsertEmptyData();

上面表名称需要修改成自己的表名,这个存储过程只会添加空数据,如果字段不允许为空记得添加默认值,并且id为自增主键,没有其他外键与索引。

赞(0) 打赏

评论 抢沙发