有时候我们想测试百万数据的时候,我们的sql语句查询性能,我们就需要构建一个百万数据的测试环境,如何快速构建一个百万测试数据的环境呢,可以通过其它语言程序遍历循环写入,不过这些都有点慢,我们可以直接通过创建存储过程库快速写入百万数据。
-
创建一个测试数据表
CREATE TABLE `email` (
`id` INT(11) NOT NULL,
`email` VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱' COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`id`)
)
COMMENT='百万email测试表'
COLLATE='utf8_unicode_ci'
ENGINE=MyISAM
;
2.创建存储过程,需要注意的是需要将msyql的执行分隔符暂时替换。
delimiter $
DROP PROCEDURE IF EXISTS my_insert;
CREATE PROCEDURE my_insert_126()
BEGIN
DECLARE n int DEFAULT 1;
loopname:LOOP
INSERT INTO `email`(`email`) VALUES ( n + '@126.com');
SET n=n+1;
IF n=5000000 THEN
LEAVE loopname;
END IF;
END LOOP loopname;
END;$
3.执行存储过程即可
call my_insert_126()
这样一个百万数据的测试环境就搭建好了。
大概需要执行40多秒左右的时间。