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