日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL如何快速導(dǎo)入數(shù)據(jù)

瀏覽:29日期:2023-10-12 13:16:43

前言:

日常學(xué)習(xí)和工作中,經(jīng)常會(huì)遇到導(dǎo)數(shù)據(jù)的需求。比如數(shù)據(jù)遷移、數(shù)據(jù)恢復(fù)、新建從庫等,這些操作可能都會(huì)涉及大量數(shù)據(jù)的導(dǎo)入。有時(shí)候?qū)脒M(jìn)度慢,電腦風(fēng)扇狂轉(zhuǎn)真的很讓人崩潰,其實(shí)有些小技巧是可以讓導(dǎo)入更快速的,本篇文章筆者會(huì)談一談如何快速的導(dǎo)入數(shù)據(jù)。

注:本篇文章只討論如何快速導(dǎo)入由邏輯備份產(chǎn)生的SQL腳本,其他文件形式暫不討論。

1.盡量減小導(dǎo)入文件大小

首先給個(gè)建議,導(dǎo)出導(dǎo)入數(shù)據(jù)盡量使用MySQL自帶的命令行工具,不要使用Navicat、workbench等圖形化工具。特別是大數(shù)據(jù)量的時(shí)候,用MySQL自帶的命令行工具導(dǎo)出和導(dǎo)入比用Navicat等圖形化工具要快數(shù)倍,而且用Navicat等圖形化工具做大數(shù)據(jù)量的操作時(shí)很容易卡死。下面簡(jiǎn)單介紹下怎么用MySQL自帶的命令行工具做導(dǎo)入導(dǎo)出。

# 導(dǎo)出整個(gè)實(shí)例mysqldump -uroot -pxxxxxx --all-databases > all_database.sql# 導(dǎo)出指定庫mysqldump -uroot -pxxxxxx --databases testdb > testdb.sql# 導(dǎo)出指定表mysqldump -uroot -pxxxxxx testdb test_tb > test_tb.sql# 導(dǎo)入指定SQL文件 (指定導(dǎo)入testdb庫中)mysql -uroot -pxxxxxx testdb < testdb.sql

導(dǎo)入的SQL腳本內(nèi)容大多是先建庫建表,然后插入數(shù)據(jù),其中耗時(shí)最長的應(yīng)該是insert插入數(shù)據(jù)了。為了減小文件大小,推薦使用擴(kuò)展插入方法,即多行一起批量insert,類似這樣:insert into table_name values (),(),(),...,(); 。使用擴(kuò)展插入比一條條插入,文件大小要小很多,插入速度要快好幾倍。使用mysqldump導(dǎo)出的文件默認(rèn)是使用批量插入的方法,導(dǎo)出時(shí)可使用--skip-extended-insert 參數(shù)改為逐條插入。下面以一張一千萬的數(shù)據(jù)表為例,測(cè)試下不同方式導(dǎo)出的文件插入時(shí)的速度。

MySQL如何快速導(dǎo)入數(shù)據(jù)

上圖可以看出,使用擴(kuò)展插入的SQL腳本導(dǎo)入大概需要10分鐘左右,而一條條插入的SQL腳本導(dǎo)入時(shí)間過長,大概1個(gè)小時(shí)仍然沒有導(dǎo)完,一個(gè)2個(gè)多G的文本導(dǎo)入一個(gè)多小時(shí)仍未結(jié)束,等不及的筆者就手動(dòng)取消了? 不過還是可以看出多條一起insert比一條條插入數(shù)據(jù)要節(jié)省數(shù)倍的時(shí)間。

2.嘗試修改參數(shù)加快導(dǎo)入速度

在MySQL中,有一對(duì)大名鼎鼎的“雙一”參數(shù),即 innodb_flush_log_at_trx_commit 與 sync_binlog 。為了安全性這兩個(gè)參數(shù)默認(rèn)值為1,為了快速導(dǎo)入腳本,我們可以臨時(shí)修改下這兩個(gè)參數(shù),下面簡(jiǎn)單介紹下這兩個(gè)參數(shù):

innodb_flush_log_at_trx_commit默認(rèn)值為1,可設(shè)置為0、1、2

如果innodb_flush_log_at_trx_commit設(shè)置為0,log buffer將每秒一次地寫入log file中,并且log file的flush(刷到磁盤)操作同時(shí)進(jìn)行.該模式下,在事務(wù)提交的時(shí)候,不會(huì)主動(dòng)觸發(fā)寫入磁盤的操作。如果innodb_flush_log_at_trx_commit設(shè)置為1,每次事務(wù)提交時(shí)MySQL都會(huì)把log buffer的數(shù)據(jù)寫入log file,并且flush(刷到磁盤)中去.如果innodb_flush_log_at_trx_commit設(shè)置為2,每次事務(wù)提交時(shí)MySQL都會(huì)把log buffer的數(shù)據(jù)寫入log file.但是flush(刷到磁盤)操作并不會(huì)同時(shí)進(jìn)行。該模式下,MySQL會(huì)每秒執(zhí)行一次 flush(刷到磁盤)操作。

sync_binlog默認(rèn)值為1,可設(shè)置為[0,N)當(dāng)sync_binlog =0,像操作系統(tǒng)刷其他文件的機(jī)制一樣,MySQL不會(huì)同步到磁盤中去而是依賴操作系統(tǒng)來刷新binary log。當(dāng)sync_binlog =N (N>0) ,MySQL 在每寫 N次 二進(jìn)制日志binary log時(shí),會(huì)使用fdatasync()函數(shù)將它的寫二進(jìn)制日志binary log同步到磁盤中去。

這兩個(gè)參數(shù)可以在線修改,若想快速導(dǎo)入,可以按照下面步驟來操作:

# 1.進(jìn)入MySQL命令行 臨時(shí)修改這兩個(gè)參數(shù)set global innodb_flush_log_at_trx_commit = 2;set global sync_binlog = 2000;# 2.執(zhí)行SQL腳本導(dǎo)入mysql -uroot -pxxxxxx testdb < testdb.sql# 3.導(dǎo)入完成 再把參數(shù)改回來set global innodb_flush_log_at_trx_commit = 1;set global sync_binlog = 1;

還有另外一種場(chǎng)景是你的需求是新建從庫,或者是不需要產(chǎn)生binlog,這時(shí)候?qū)隨QL腳本時(shí)可以設(shè)置暫時(shí)不記錄binlog,可以在腳本開頭增加 set sql_log_bin=0; 然后再執(zhí)行導(dǎo)入,這樣速度會(huì)進(jìn)一步加快。如果你的MySQL實(shí)例沒有開啟binlog則不需要再執(zhí)行該語句了。

總結(jié):

本篇文章主要介紹快速導(dǎo)入數(shù)據(jù)的方法,可能還有其他方法快速導(dǎo)入數(shù)據(jù),比如load data或者寫程序多線程插入。本文中介紹的方法只適合手動(dòng)導(dǎo)入SQL腳本,下面總結(jié)下本文中提到的方法。

使用MySQL自帶的命令行工具進(jìn)行導(dǎo)出導(dǎo)入。 使用擴(kuò)展插入方法,一個(gè)insert對(duì)于多個(gè)值。 臨時(shí)修改innodb_flush_log_at_trx_commit和sync_binlog參數(shù)。 關(guān)閉binlog或者臨時(shí)不記錄binlog。

其實(shí)還有一些其他方案,比如先不創(chuàng)建索引,插入數(shù)據(jù)后再執(zhí)行添加索引操作;或者先將表改為MyISAM或MEMORY引擎,導(dǎo)入完成后再改為InnoDB引擎。不過這兩種方法實(shí)施起來較為麻煩且不知效果如何。以上方法只是筆者依據(jù)個(gè)人經(jīng)驗(yàn)總結(jié)得出,可能不太全面,歡迎各位補(bǔ)充哦。

以上就是MySQL如何快速導(dǎo)入數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于MySQL導(dǎo)入數(shù)據(jù)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本视频一区二区| 卡一精品卡二卡三网站乱码| 成人在线免费观看网站| 麻豆视频在线观看免费网站黄| 久久只有精品| 欧美日韩视频| 久久精品卡一| 日韩av一级| 在线一区视频| 中文字幕一区二区三区在线视频| 亚洲综合小说| 国产精品密蕾丝视频下载| 麻豆中文一区二区| 日韩免费福利视频| 在线亚洲观看| 国产伦精品一区二区三区视频| 国产精品视频一区视频二区| 激情中国色综合| 欧美精品一区二区久久| 日本中文字幕一区二区| 国语对白精品一区二区| 五月天久久777| 久久精品999| 精品捆绑调教一区二区三区| 久久电影一区| 丰满少妇一区| 国产精品色网| 麻豆精品久久久| 欧美日韩精品一本二本三本| 欧美日韩a区| 在线看片福利| 自由日本语亚洲人高潮| 欧美一级全黄| 日韩一区亚洲二区| 免费观看日韩电影| 国产a久久精品一区二区三区| 丝袜亚洲精品中文字幕一区| 精品一区二区三区的国产在线观看| 欧美日韩国产一区二区三区不卡| 国产调教一区二区三区| 欧美jjzz| 加勒比视频一区| 在线看片日韩| 91看片一区| 国产欧美午夜| 日韩视频精品在线观看| 国产麻豆精品| 视频精品一区二区| 日韩精品不卡一区二区| 日韩不卡免费视频| 亚洲激情中文| 丁香婷婷久久| 青青草国产成人99久久| 欧美中文一区二区| 麻豆一区二区在线| 亚洲理论在线| 美女亚洲一区| 97人人精品| 国产精品黄色片| 视频一区二区中文字幕| 久久在线免费| 久久久久久婷| 久久国内精品视频| 视频一区二区欧美| 欧美a级一区| 久久久久美女| 亚洲一区亚洲| 亚洲h色精品| 国产免费av国片精品草莓男男| 欧美高清不卡| 欧美日韩免费看片| 国产精品多人| 日韩不卡在线观看日韩不卡视频| 免费视频久久| 91成人网在线观看| av资源中文在线天堂| 国产精品任我爽爆在线播放| 欧美日韩国产亚洲一区| 999视频精品| 99精品国产一区二区三区| 成人在线黄色| 久久99蜜桃| 国产精品啊v在线| 国产亚洲久久| 欧美一区二区三区久久| 亚洲一二三区视频| 免费成人在线视频观看| 久久福利毛片| 综合国产在线| 日韩毛片一区| 日韩精品免费视频人成| 亚洲丝袜美腿一区| 久久国产精品亚洲77777| 欧美午夜不卡| 蜜桃久久精品一区二区| 国产精品毛片在线看| 先锋影音久久久| 亚洲毛片网站| 国产乱码精品一区二区三区亚洲人 | 国产精品一区二区精品 | 国产精品草草| 精品国产欧美| 91av亚洲| 亚洲成人一区| 午夜久久av| 欧美视频久久| 老司机免费视频一区二区三区| 精品视频久久| 三级在线看中文字幕完整版| 99成人在线视频| 久久夜色精品| 欧美亚洲综合视频| 国产精品videossex| 国产高清亚洲| 国产美女高潮在线| 欧美日韩国产在线观看网站| 婷婷综合成人| 欧美国产不卡| 91tv亚洲精品香蕉国产一区| 日韩午夜精品| 国产欧美综合一区二区三区| 日韩成人a**站| 野花国产精品入口| 国产欧美在线观看免费| 日韩黄色大片| 亚洲毛片一区| 日韩精品免费视频一区二区三区| 红杏一区二区三区| 国产成人免费精品| 91精品国产自产在线观看永久∴ | 97精品国产一区二区三区 | 国产精品日本| 欧美国产先锋| 久久久一二三| 蜜桃视频在线观看一区| 国产精品hd| 国产一区欧美| 欧美日韩伊人| 日韩电影二区| 日本精品在线播放| 国产精品99一区二区三区| 99亚洲精品| 精品中文字幕一区二区三区四区| 午夜欧美精品| 国产精品一区二区美女视频免费看| 久久久人人人| 日本午夜精品一区二区三区电影| 日韩一区自拍| 国产亚洲欧美日韩精品一区二区三区 | 好吊日精品视频| 欧美日一区二区三区在线观看国产免 | 亚洲精品成人一区| 人人草在线视频| 青青伊人久久| 999国产精品| 国产精品久久久网站| 在线精品小视频| 国产成人精品一区二区三区视频 | 性色一区二区| 亚洲综合在线电影| 日本aⅴ精品一区二区三区| 亚洲国内精品| 久久中文字幕一区二区| 亚洲精品一区二区在线播放∴| 免费污视频在线一区| 国产九九精品| 石原莉奈一区二区三区在线观看| 波多野结衣久久精品| 国产伦精品一区二区三区视频| 午夜在线一区| 久久精品影视| 精品午夜久久| 日韩精品免费视频人成 | 欧美日韩一二三四| 久久精品国产久精国产爱| 亚洲精品进入| 免费精品视频| 日韩亚洲精品在线| 久久国产日韩| 美女久久精品| 欧美在线黄色| 亚洲精品免费观看| 香蕉精品999视频一区二区| 欧美亚洲国产激情| 中文字幕在线视频久| 国产欧美日韩一区二区三区在线| 天堂av在线一区| 国产精品社区| 午夜欧美视频| 99亚洲精品| 99视频精品免费观看| 精品在线99| 1000部精品久久久久久久久| 欧洲一区二区三区精品| 色婷婷综合网| 成人午夜在线| 欧美日韩一区二区三区四区在线观看| 日韩视频1区| 99国内精品| 欧美日韩国产欧|