MySQL怎样快速创造百万测试数据

网友投稿 100 2023-12-27

MySQL怎样快速创造百万测试数据

这篇文章给大家介绍MySQL怎样快速创造百万测试数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

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 ;

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  ;

DELIMITER //

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  //

DELIMITER //

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  //

CALL add_vote_memory(1000000) //

delimiter end ;

delimiter ;

INSERT into vote_record SELECT * from  vote_record_memory;

关于MySQL怎样快速创造百万测试数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:binlog 备份是怎么样的
下一篇:sql的优化建议有哪些呢
相关文章

 发表评论

暂时没有评论,来抢沙发吧~