佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Mysql快速插入千萬條數(shù)據(jù)的實戰(zhàn)教程

Mysql快速插入千萬條數(shù)據(jù)的實戰(zhàn)教程

熱門標(biāo)簽:AI電銷 百度競價排名 服務(wù)外包 Linux服務(wù)器 網(wǎng)站排名優(yōu)化 呼叫中心市場需求 地方門戶網(wǎng)站 鐵路電話系統(tǒng)

一.創(chuàng)建數(shù)據(jù)庫

二.創(chuàng)建表

1.創(chuàng)建 dept表

CREATE TABLE `dept` (
 `id` int(11) NOT NULL,
 `deptno` mediumint(9) DEFAULT NULL,
 `dname` varchar(20) DEFAULT NULL,
 `loc` varchar(13) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.創(chuàng)建emp表

CREATE TABLE `emp` (
 `id` int(11) NOT NULL,
 `empon` mediumint(9) DEFAULT NULL COMMENT '編號',
 `ename` varchar(20) DEFAULT NULL,
 `job` varchar(9) DEFAULT NULL,
 `mgr` mediumint(9) DEFAULT NULL COMMENT '上級編號',
 `hirdate` datetime DEFAULT NULL COMMENT '入職時間',
 `sal` decimal(7,2) DEFAULT NULL COMMENT '薪水',
 `comm` decimal(7,2) DEFAULT NULL COMMENT '紅利',
 `deptno` mediumint(9) DEFAULT NULL COMMENT '部門編號',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

三.設(shè)置參數(shù)

SHOW VARIABLES LIKE 'log_bin_trust_function_creators';

默認關(guān)閉.  需要設(shè)置為1。因為表中設(shè)置 mediumint 字段 創(chuàng)建函數(shù)可能會報錯

SET GLOBAL log_bin_trust_function_creators=1;

四.創(chuàng)建函數(shù)

1.隨機產(chǎn)生字符串

DELIMITER $
CREATE FUNCTION RAND_STR(n INT) RETURNS VARCHAR(255)
BEGIN
 DECLARE chars_str VARCHAR(100) DEFAULT 'abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
	 DECLARE return_str VARCHAR(255) DEFAULT '';
 DECLARE i INT DEFAULT 0;
	 WHILE i n DO 
	 SET return_str =COUCAT(return_str,SUBSTRING(chars_str,FLOOR(1+RAND()*52),1));
	 SET i= i+1;
 END WHILE;
	 RETURN return_str;
END $

2.隨機產(chǎn)生部門編號

DELIMITER $
CREATE FUNCTION RAND_num() RETURNS INT(5)
BEGIN
 DECLARE i INT DEFAULT 0; 
	 SET i= FLOOR(100+RAND()*10);
	 RETURN i;
END $

五.創(chuàng)建存儲過程

1. emp表存儲過程

DELIMITER $
CREATE PROCEDURE insert_emp(IN START INT(10),IN max_num INT(10))
BEGIN
  DECLARE i INT DEFAULT 0;
		SET autocommit = 0;
		REPEAT #重復(fù)
		SET i = i + 1;
		INSERT INTO emp(empon,ename,job,mgr,hiredate,sal,comm,depton) VALUES ((START+i),RAND_STR(6),'SALESMAN',0001,CURDATE(),2000,400,RAND_num());
	 UNTIL i = max_num
 END REPEAT;
	 COMMIT;
END $

2.dept表存儲過程

DELIMITER $
CREATE PROCEDURE insert_dept(IN START INT(10),IN max_num INT(10))
BEGIN
  DECLARE i INT DEFAULT 0;
		SET autocommit = 0;
		REPEAT #重復(fù)
		SET i = i + 1;
		INSERT INTO dept(deptno,dname,loc) VALUES ((START+i),RAND_STR(10),RAND_STR(8));
	 UNTIL i = max_num
 END REPEAT;
	 COMMIT;
END $

六.執(zhí)行

1.先執(zhí)行十條

這個錯誤是一個小坑 發(fā)現(xiàn)了嗎 我之前留下的  根據(jù)提示 去排查吧 

執(zhí)行成功!

2.查看數(shù)據(jù)

重頭戲來嘍!  一次性干他百萬條數(shù)據(jù)  賭一把 看看會不會玩崩了

3.執(zhí)行百萬插入

CALL insert_dept(10001,1000000);

400s跑百萬數(shù)據(jù)  一秒2500條    我這配置太垃圾  以前測試的是一秒一萬 最好50W跑一次

歐克 睡覺 

總結(jié)

到此這篇關(guān)于Mysql快速插入千萬條數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Mysql插入千萬條數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • mysql大批量插入數(shù)據(jù)的4種方法示例
  • mysql中迅速插入百萬條測試數(shù)據(jù)的方法
  • MySql中把一個表的數(shù)據(jù)插入到另一個表中的實現(xiàn)代碼
  • 用一條mysql語句插入多條數(shù)據(jù)
  • mysql如果數(shù)據(jù)不存在,則插入新數(shù)據(jù),否則更新的實現(xiàn)方法
  • mysql中插入表數(shù)據(jù)中文亂碼問題的解決方法
  • mysql數(shù)據(jù)庫插入速度和讀取速度的調(diào)整記錄
  • MYSQL批量插入數(shù)據(jù)的實現(xiàn)代碼
  • mysql技巧:提高插入數(shù)據(jù)(添加記錄)的速度
  • mysql 一次向表中插入多條數(shù)據(jù)實例講解

標(biāo)簽:湘潭 崇左 湖南 銅川 蘭州 仙桃 黃山 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql快速插入千萬條數(shù)據(jù)的實戰(zhàn)教程》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    塘沽区| 金山区| 华宁县| 新民市| 睢宁县| 屯门区| 裕民县| 宜宾市| 纳雍县| 西丰县| 香格里拉县| 灵山县| 漠河县| 武陟县| 宁武县| 余江县| 旺苍县| 五峰| 临洮县| 阿勒泰市| 凌源市| 遂溪县| 绵竹市| 南江县| 贵定县| 祁阳县| 盈江县| 旬邑县| 斗六市| 长宁县| 响水县| 锡林郭勒盟| 龙岩市| 安图县| 玛曲县| 鹿邑县| 报价| 吉水县| 泸州市| 甘德县| 晋城|