欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Mysql百萬級數(shù)據(jù)遷移的示例分析

這篇文章將為大家詳細(xì)講解有關(guān)MySQL百萬級數(shù)據(jù)遷移的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

阿勒泰網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

                           

假如有這么一個場景,開發(fā)了一個小程序,趁著雙十一活動的熱度,一個月后迅速積累了一百多萬用戶,我們在小程序頁面增加了收集formid的埋點(diǎn),用于給微信用戶發(fā)送模板消息通知。

隨著數(shù)據(jù)量的增大,之前使用的服務(wù)器空間開始有點(diǎn)不夠用,最近新寫了一個專門用于做小程序后臺開發(fā)的框架,于是想把原來的數(shù)據(jù)遷移到新系統(tǒng)的數(shù)據(jù)庫。買了一臺4核8G的機(jī)器,開始做數(shù)據(jù)遷移。下面對遷移過程做一個簡單的記錄。

Mysql百萬級數(shù)據(jù)遷移的示例分析

方案選擇

mysqldump遷移

平常開發(fā)中,我們比較經(jīng)常使用的數(shù)據(jù)備份遷移方式是用mysqldump工具導(dǎo)出一個sql文件,再在新數(shù)據(jù)庫中導(dǎo)入sql來完成數(shù)據(jù)遷移。

試驗(yàn)發(fā)現(xiàn),通過mysqldump導(dǎo)出百萬級量的數(shù)據(jù)庫成一個sql文件,大概耗時幾分鐘,導(dǎo)出的sql文件大小在1G左右,然后再把這個1G的sql文件通過scp命令復(fù)制到另一臺服務(wù)器,大概也需要耗時幾分鐘。在新服務(wù)器的數(shù)據(jù)庫中通過source命令來導(dǎo)入數(shù)據(jù),我跑了一晚上都沒有把數(shù)據(jù)導(dǎo)入進(jìn)來,cpu跑滿。

腳本遷移

直接通過命令行操作數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的導(dǎo)出和導(dǎo)入是比較便捷的方式,但是數(shù)據(jù)量較大的情況下往往會比較耗時,對服務(wù)器性能要求也比較高。如果對數(shù)據(jù)遷移時間要求不是很高,可以嘗試寫腳本來遷移數(shù)據(jù)。雖然沒有實(shí)際嘗試,但是我想過大概有兩種腳本方案。

第一種方式,在遷移目標(biāo)服務(wù)器跑一個遷移腳本,遠(yuǎn)程連接源數(shù)據(jù)服務(wù)器的數(shù)據(jù)庫,通過設(shè)置查詢條件,分塊讀取源數(shù)據(jù),并在讀取完之后寫入目標(biāo)數(shù)據(jù)庫。這種遷移方式效率可能會比較低,數(shù)據(jù)導(dǎo)出和導(dǎo)入相當(dāng)于是一個同步的過程,需要等到讀取完了才能寫入。如果查詢條件設(shè)計(jì)得合理,也可以通過多線程的方式啟動多個遷移腳本,達(dá)到并行遷移的效果。

第二種方式,可以結(jié)合redis搭建一個“生產(chǎn)+消費(fèi)”的遷移方案。源數(shù)據(jù)服務(wù)器可以作為數(shù)據(jù)生產(chǎn)者,在源數(shù)據(jù)服務(wù)器上跑一個多線程腳本,并行讀取數(shù)據(jù)庫里面的數(shù)據(jù),并把數(shù)據(jù)寫入到redis隊(duì)列。目標(biāo)服務(wù)器作為一個消費(fèi)者,在目標(biāo)服務(wù)器上也跑一個多線程腳本,遠(yuǎn)程連接redis,并行讀取redis隊(duì)列里面的數(shù)據(jù),并把讀取到的數(shù)據(jù)寫入到目標(biāo)數(shù)據(jù)庫。這種方式相對于第一種方式,是一種異步方案,數(shù)據(jù)導(dǎo)入和數(shù)據(jù)導(dǎo)出可以同時進(jìn)行,通過redis做數(shù)據(jù)的中轉(zhuǎn)站,效率會有較大的提升。

這里你也可以使用go語言來寫遷移腳本,利用其原生的并發(fā)特性,可以達(dá)到并行遷移數(shù)據(jù)的目的,提升遷移效率。

文件遷移

第一種遷移方案效率太低,第二種遷移方案編碼代價較高,通過對比和在網(wǎng)上找的資料分析,我最終選擇了通過mysql的。

select data into outfile file.txt、load data infile file.txt into table

的命令,以導(dǎo)入導(dǎo)出文件的形式完成了百萬級數(shù)據(jù)的遷移。

遷移過程

在源數(shù)據(jù)庫中導(dǎo)出數(shù)據(jù)文件

select * from dc_mp_fans into outfile '/data/fans.txt';

復(fù)制數(shù)據(jù)文件到目標(biāo)服務(wù)器

zip fans.zip /data/fans.txtscp fans.zip root@ip:/data/

在目標(biāo)數(shù)據(jù)庫導(dǎo)入文件

unzip /data/fans.zipload data infile '/data/fans.txt' into table wxa_fans(id,appid,openid,unionid,@dummy,created_at,@dummy,nickname,gender,avatar_url,@dummy,@dummy,@dummy,@dummy,language,country,province,city,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy);

按照這么幾個步驟操作,幾分鐘內(nèi)就完成了一個百萬級數(shù)據(jù)表的跨服務(wù)器遷移工作。

注意項(xiàng)

  • mysql安全項(xiàng)設(shè)置

在mysql執(zhí)行l(wèi)oad data infile和into outfile命令都需要在mysql開啟了secure_file_priv選項(xiàng), 可以通過show global variables like ‘%secure%’;查看mysql是否開啟了此選項(xiàng),默認(rèn)值Null標(biāo)識不允許執(zhí)行導(dǎo)入導(dǎo)出命令。

通過vim /etc/my.cnf修改mysql配置項(xiàng),將secure_file_priv的值設(shè)置為空:

[mysqld]  secure_file_priv=''

則可通過命令導(dǎo)入導(dǎo)出數(shù)據(jù)文件。

  • 導(dǎo)入導(dǎo)出的數(shù)據(jù)表字段不對應(yīng)

上面示例的從源數(shù)據(jù)庫的dc_mp_fans表遷移數(shù)據(jù)到目標(biāo)數(shù)據(jù)庫的wxa_fans表,兩個數(shù)據(jù)表的字段分別為:dc_mp_fans

Mysql百萬級數(shù)據(jù)遷移的示例分析

wxa_fans

Mysql百萬級數(shù)據(jù)遷移的示例分析

在導(dǎo)入數(shù)據(jù)的時候,可以通過設(shè)置字段名來匹配目標(biāo)字段的數(shù)據(jù),可以通過@dummy丟棄掉不需要的目標(biāo)字段數(shù)據(jù)。

關(guān)于“Mysql百萬級數(shù)據(jù)遷移的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

當(dāng)前標(biāo)題:Mysql百萬級數(shù)據(jù)遷移的示例分析
網(wǎng)頁URL:http://aaarwkj.com/article22/ijhijc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站內(nèi)鏈、企業(yè)建站、品牌網(wǎng)站設(shè)計(jì)企業(yè)網(wǎng)站制作、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
99久久精品人妻少妇一| 国产丝袜肉丝在线播放| 最新中文字幕成人在线观看| 99精品久久久中文字幕日本| 国产欧美日韩精品一区| 国产黄片大秀在线观看| 欧美大片高清在线观看| 日本成熟妇高潮视频在线观看不卡| 欧美亚洲清纯唯美另类| 欧美丰满老妇性猛交| 日韩高清在线一区二区三区| 中字幕人妻一区二区三区| 青草免费在线播放视频| 中文字幕日韩精品在线看| 欧美日韩黄色的三级视频| 欧美精品一区二区毛卡片| 色播五月麻豆激情综合网| 亚洲综合五月天色婷婷| 国产精品自产拍av在线| 亚洲视一区二区三区四区| 黑人爆操中国女孩在线观看| 人妻久久久久久精品99| 中文字幕在线一级色视频| 亚洲女久久久噜噜噜综合| 亚洲性码不卡视频在线| 中文字幕日韩欧美一区| 人妻中文字幕精品系列| 日韩精品在线观看你懂的| 九九精品在线观看视频| 日本在线免费高清观看| 黑丝美女国产精品久久久| 国产日韩欧美精品激情| 久久综激情丁香开心婷婷| 日韩精品熟女一区二区三区| 人妻一区二区三区久久| 日韩不卡在线观看免费| 亚洲一区二区三区免费观看视频| 国产成人久久久精品一区| 国产精品乱人偷免费视频| 男女午夜激情啪啪视频| 国产日韩欧美亚洲中文|