Mysql 存储过程造测试数据

1.Mysql 存储过程造测试数据

-- 创建一个用户表
CREATE TABLE `sys_user` (
    -- `id` CHAR (32) NOT NULL DEFAULT '' COMMENT '主键',
    `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `username` VARCHAR (100) NOT NULL DEFAULT '' COMMENT '用户名',
    `password` CHAR (32) NOT NULL DEFAULT '' COMMENT '密码',
    `status` TINYINT (1) NOT NULL DEFAULT '0' COMMENT '状态',
    `desz` VARCHAR (200) DEFAULT NULL COMMENT '描述',
    PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '用户表'


-- 创建存储过程 名称:myproc
CREATE PROCEDURE myproc (IN total INT)
BEGIN

DECLARE v INT ;
SET v = 1 ;
-- 开启事务
start transaction ;
WHILE v <= total DO
    INSERT INTO sys_user (
        -- id,
        username,
        PASSWORD,
        STATUS,
        desz
    )
VALUES
    (
        -- REPLACE (uuid(), '-', ''),
        
        concat('用户-', v),
        concat('pwd-', v),
        v % 2,
        concat('描述-', v)
    ) ;
SET v = v + 1 ;
END WHILE ;
-- 提交事务
COMMIT;
END ;


-- 查看当前创建的存储过程
show PROCEDURE status; 

-- 设置自增初始值
alter table sys_user AUTO_INCREMENT=1

-- 执行存储过程,传入参数
call myproc(5500000);

-- 删除存储过程
drop PROCEDURE myproc;    

 测试100万条耗时60s

 测试550完条耗时362.679s

作者:往霄龙
求其上者得其中,求其中者得其下
原文地址:https://www.cnblogs.com/JQKA/p/11842568.html