mysql 快速生成百万条测试数据

Posted gmin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 快速生成百万条测试数据相关的知识,希望对你有一定的参考价值。

1、生成思路

利用mysql内存表插入速度快的特点,先利用函数和存储过程在内存表中生成数据,然后再从内存表插入普通表中
 

2、创建内存表及普通表

CREATE TABLE `card` (
   `card_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘ID‘,
   `card_number` varchar(100) DEFAULT NULL COMMENT ‘卡号‘,
   PRIMARY KEY (`card_id`)
 ) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC

 

2.创建MYSQL存储过程

DROP PROCEDURE IF EXISTS proc1;
DELIMITER $$
SET AUTOCOMMIT = 0$$
CREATE  PROCEDURE proc1()
BEGIN
DECLARE v_cnt DECIMAL (10)  DEFAULT 0 ;
dd:LOOP
          INSERT  INTO card (card_number) VALUES (UUID());
                  COMMIT;
                    SET v_cnt = v_cnt+1 ;
                           IF  v_cnt = 10000000 THEN LEAVE dd;
                          END IF;
         END LOOP dd ;
END;$$
DELIMITER ;

 3.调用存储过程,生成对应的测试数据

call proc1;

4.来测试一下性能吧。

select * from card order by rand() limit 1;   //6.5秒查询完毕
select * from card where card_number like ‘%xxx%‘; //3.7秒查询完毕

 

以上是关于mysql 快速生成百万条测试数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在mysql数据库生成百万条数据来测试页面加载速度

mysql生成百万级数量测试数据(超简单)

MySQL快速生成本地测试数据

快速生成百万级的概率数据的N种实践方法

mysql中如何批量生成百万级数据

Mysql快速插入千万条测试数据