mysql 快速生成百萬條測試數據

轉自:http://www.cnblogs.com/jiangxiaobo/p/6101072.html

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 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 ) DOINSERT 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

6、結果

轉載于:https://www.cnblogs.com/sharpest/p/9932975.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276935.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276935.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276935.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自動化專業學python有用嗎-馬哥教育官網-專業Linux培訓班,Python培訓機構

今天小編要來說一下Python自動化的學習思路&#xff0c; 對于剛剛進入的測試行業的人來說&#xff0c;未來該怎么樣朝著自動化方向發展&#xff0c;即使接觸到了自動化測試&#xff0c;又該從何下手去學呢&#xff1f; 簡單的說&#xff0c; 做測試做的好&#xff0c;會了接口&…

java JVM

每一個Java虛擬機都由一個類加載器子系統&#xff08;class loader subsystem&#xff09;&#xff0c;負責加載程序中的類型&#xff08;類和接口&#xff09;&#xff0c;并賦予唯一的名字。每一個Java虛擬機都有一個執行引擎&#xff08;execution engine&#xff09;負責執…

馬化騰聯手10余位科學家發起科學探索獎,騰訊基金投入10億元啟動資金

11月9日消息&#xff0c;據騰訊科技報道&#xff0c;騰訊基金會于騰訊公司成立20周年之際宣布&#xff0c;騰訊公司董事會主席兼首席執行官&#xff0c;騰訊基金會發起人馬化騰&#xff0c;與北京大學教授饒毅&#xff0c;攜手楊振寧、毛淑德、何華武、鄔賀銓、李培根、陳十一、…

給Domino系統管理員的十二項建議

Domino系統管理員的日常工作就是維護Domino系統的正常運行。以下簡要說明了管理員所必做的一些工作。對于系統管理員&#xff0c;特別是新建系統的管理員來說&#xff0c;這些建議能幫助他們完成基本的維護工作。 根據許多資深的Domino管理員和咨詢人員的經驗&#xff0c;我們對…

delphi 軟件在線人數統計_8款值得學習的科研論文作圖軟件

寫在前面科研繪圖在國外已經非常流行&#xff0c;且被高度重視&#xff0c;國內科研人員也越來越重視科研方面的繪圖。不少科研工作者&#xff0c;包括在讀的博士生、研究生等可能都有這樣的體會&#xff1a;千辛萬苦得來的實驗結果&#xff0c;不知道該如何展現給別人?曾經有…

技術管理—管理書籍推薦

技術出身&#xff0c;考慮接觸下管理方面的知識。也許管理真的適合你&#xff0c;角色認知?角色實踐?角色勝任&#xff01;最后愛上它&#xff01; 我最喜歡的一本書--高效能人士的七個習慣 作者&#xff1a;史蒂芬柯維&#xff08;Stephen Richards Covey&#xff09; 該…

JS 幾種數據類型及其轉換

ECMAScript 標準定義了 7 種數據類型: Number&#xff1b;String&#xff1b;Boolean&#xff1b;Symbol&#xff1b;Null&#xff1b;Undefined&#xff1b;Object 。通常&#xff0c;數值、字符串、布爾值、undefined和null這五種類型&#xff0c;合稱為簡單類型的值&#xf…

網絡虛擬化有幾種實現方式_停車場管理系統的防砸車功能有幾種方式?如何實現?...

原標題&#xff1a;停車場管理系統的防砸車功能有幾種方式&#xff1f;如何實現&#xff1f;前言0101正文一、壓力波防砸裝置也叫遇阻防砸&#xff0c;主要是安裝遇阻返回裝置&#xff0c;當道閘桿下落過程中接觸到車輛或者行人(接觸力度是可以調節的)&#xff0c;裝置道閘桿底…

Socket 死連接詳解

當使用 Socket 進行通信時&#xff0c;由于各種不同的因素&#xff0c;都有可能導致死連接停留在服務器端&#xff0c;假如服務端需要處理的連接較多&#xff0c;就有可能造成服務器資源嚴重浪費&#xff0c;對此&#xff0c;本文將闡述其原理以及解決方法。 在寫 Socket 進行通…

[Swift]LeetCode1146. 快照數組 | Snapshot Array

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★?微信公眾號&#xff1a;山青詠芝&#xff08;shanqingyongzhi&#xff09;?博客園地址&#xff1a;山青詠芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;?GitHub地址&a…

aspnet中gridview文本只顯示開始幾個文本_軟網推薦:三個小軟件 輕松解決文本操作難題...

TXT文本操作在Windows操作中算是比較容易的事了&#xff0c;但簡單的文本操作也會遇到難題。例如&#xff0c;對于我們反復需要使用的多個信息&#xff0c;如果僅靠CtrlC和CtrlV來回復制、粘貼&#xff0c;效率會極低&#xff1b;再如&#xff0c;對于一些軟件組件中顯示的文本…

剛被IBM收購的紅帽,它的下一站是中國

前不久IBM斥資340億美元收購紅帽的新聞震驚了所有人&#xff0c;這個金額是互聯網上第三大交易&#xff0c;也是開源史上最大交易。這個收購背后到底有哪些目的&#xff1f;紅帽接下來會做什么&#xff1f;11月6日紅帽在北京舉辦紅帽論壇&#xff0c;向外界介紹了紅帽的想法。 …

驗證DetailsView插入數據不為空

驗證DetailsView插入數據不為空,在對象數據源ObjectDataScource&#xff08;ChannelDS&#xff09;的Inserting事件中寫如下代碼&#xff1a;protected void ChannelDS_Inserting(object sender, ObjectDataSourceMethodEventArgs e) { string name "";…

為什么onenote一直在加載_OneNote:科研筆記獨一無二的無敵利器

每個人都夢想著自己有超乎常人的記憶力&#xff0c;擁有者過目不忘的技能&#xff0c;從此走向人生巔峰……然而我們都不是那樣的人&#xff0c;在這個高速發展的數字新信息時代&#xff0c;進行有效的記憶&#xff0c;保存我們隨時到來的靈感等&#xff0c;這就需要我們進行筆…

WPF 實現 DataGrid/ListView 分頁控件

原文:WPF 實現 DataGrid/ListView 分頁控件在WPF中&#xff0c;通常會選用DataGrid/ListView進行數據展示&#xff0c;如果數據量不多&#xff0c;可以直接一個頁面顯示出來。如果數據量很大&#xff0c;2000條數據&#xff0c;一次性顯示在一個頁面中&#xff0c;不僅消耗資源…

Sql Server 中漢字處理排序規則,全角半角

--1. 為數據庫指定排序規則CREATEDATABASEdb COLLATE Chinese_PRC_CI_ASGOALTERDATABASEdb COLLATE Chinese_PRC_BINGO/**//**/--2. 為表中的列指定排序規則CREATETABLEtb(col1 varchar(10),col2 varchar(10) COLLATE Chinese_PRC_CI_AS)GOALTERTABLEtb ADDcol3 varchar(10) CO…

解決局域網設置固定IP后無法上網?

1.cmd中輸入ipconfig /all查看ip和dns的狀態 2.查看自動獲取的dns是什么,然后手動設置ip和dns時,和自動獲取的保持一樣即可 注解&#xff1a;設置后還是無法上網后主要檢查ip與dns是否設置錯誤. 轉載于:https://www.cnblogs.com/yanans/p/11301061.html

鼠標輸入

一、隱藏并捕捉光標 偏航角和俯仰角是通過鼠標移動獲得的&#xff0c;水平的移動影響偏航角&#xff0c;豎直的移動影響俯仰角。 原理是&#xff0c;存儲上一幀鼠標的位置&#xff0c;在當前幀中計算鼠標位置與上一幀的位置相差多少。如果水平/豎直差別越大&#xff0c;那么俯仰…

c#用canny算子做邊緣提取_機器視覺學習(三)邊緣檢測

一、邊緣檢測二、邊緣檢測流程三、Canny邊緣檢測前言邊緣檢測是圖像處理和計算機視覺中&#xff0c;尤其是特征提取中的一個研究領域。有許多方法用于邊緣檢測&#xff0c;它們的絕大部分可以劃分為兩類&#xff1a;基于一階導數首先計算邊緣強度&#xff0c; 通常用一階導數表…

一個有關Update類型的存儲過程的問題

CREATE PROCEDURE testupdateproc AS declare id int declare trandate datetime declare tranlimit int update test set trandatetrandate, tranlimittranlimit where test.idid GO 存儲過程語句如上&#xff0c;檢查語法是沒有問題的&#xff0c;但是在程序中執行時卻不行…