码迷,mamicode.com
首页 > 数据库 > 详细

MySQL快速生成100W条测试数据

时间:2019-12-08 12:23:44      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:datetime   cat   插入   文件   nbsp   turn   mil   targe   pad   

https://blog.csdn.net/qq_16946803/article/details/81870174

 

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

 

2、创建普通表及内存表
普通表
CREATE TABLE `vote_record` (
`id` INT (11) NOT NULL AUTO_INCREMENT,
`user_id` VARCHAR (20) NOT NULL,
`vote_id` INT (11) NOT NULL,
`group_id` INT (11) NOT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `index_user_id` (`user_id`) USING HASH
) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8


内存表
CREATE TABLE `vote_record_memory` (
`id` INT (11) NOT NULL AUTO_INCREMENT,
`user_id` VARCHAR (20) NOT NULL,
`vote_id` INT (11) NOT NULL,
`group_id` INT (11) NOT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `index_id` (`user_id`) USING HASH
) ENGINE = MEMORY AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8


 3、创建函数及存储过程
CREATE FUNCTION `rand_string`(n INT) RETURNS varchar(255) CHARSET latin1
BEGIN
DECLARE chars_str varchar(100) DEFAULT ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789‘;
DECLARE return_str varchar(255) DEFAULT ‘‘ ;
DECLARE i INT DEFAULT 0;
WHILE i < n DO
SET return_str = concat(return_str,substring(chars_str , FLOOR(1 + RAND()*62 ),1));
SET i = i +1;
END WHILE;
RETURN return_str;
END
CREATE PROCEDURE `add_vote_memory`(IN n int)
BEGIN
DECLARE i INT DEFAULT 1;
WHILE (i <= n ) DO
INSERT into vote_record_memory (user_id,vote_id,group_id,create_time ) VALUEs (rand_string(20),FLOOR(RAND() * 1000),FLOOR(RAND() * 100) ,now() );
set i=i+1;
END WHILE;
END


4、调用存储过程 (生成内存表数据)
CALL add_vote_memory(1000000)


 如果内存不足,wind8.1中添加一下两段代码,在mysql的服务器配置文件中my.ini

  tmp_table_size=1G
  max_heap_table_size = 1G

 

 

5、插入普通表中
INSERT into vote_record SELECT * from vote_record_memory
 

MySQL快速生成100W条测试数据

MySQL快速生成100W条测试数据

标签:datetime   cat   插入   文件   nbsp   turn   mil   targe   pad   

原文地址:https://www.cnblogs.com/Andrew520/p/12005214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!