mysql 快速產生百萬條測試資料

來源:互聯網
上載者:User

標籤:print   ati   不能   null   mys   zab   ima   time   innodb   

轉  54691590

1、產生思路 
利用mysql記憶體表插入速度快的特點,先利用函數和預存程序在記憶體表中產生資料,然後再從記憶體表插入普通表中 
2、建立記憶體表及普通表

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

 

3、建立函數及預存程序

CREATE FUNCTION `rand_string`(n INT) RETURNS varchar(255) CHARSET latin1BEGIN 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)

根據電腦效能不能所花時間不一樣,大概時間在小時層級,如果報錯記憶體滿了,只在修改max_heap_table_size 個參數即可,win7修改位置如下,linux,修改my.cnf檔案,修改後要重啟mysql,重啟後記憶體表資料會丟失 

5、插入普通表中

INSERT into vote_record SELECT * from  vote_record_memory
  • 1

6、結果 
 

mysql 快速產生百萬條測試資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.