有时候我们想测试百万数据的时候,我们的sql语句查询性能,我们就需要构建一个百万数据的测试环境,如何快速构建一个百万测试数据的环境呢,可以通过其它语言程序遍历循环写入,不过这些都有点慢,我们可以直接通过创建存储过程库快速写入百万数据。

  1. 创建一个测试数据表

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多秒左右的时间。