zoukankan      html  css  js  c++  java
  • MySQL快速生成100W条测试数据

    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条测试数据

  • 相关阅读:
    [haoi2011]向量
    [haoi2008]硬币购物
    noi2001 [食物链]并查集p1697
    [haoi2012]容易题(数论+容斥的思想)
    p1620田忌赛马(贪心+模拟)
    p1368[扑街]广场铺砖
    [zjoi2010]网络扩容
    是时候写一篇总结了
    P1630 求和
    魔术棋子
  • 原文地址:https://www.cnblogs.com/Andrew520/p/12005214.html
Copyright © 2011-2022 走看看