婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > 從云數(shù)據(jù)遷移服務(wù)看MySQL大表抽取模式的原理解析

從云數(shù)據(jù)遷移服務(wù)看MySQL大表抽取模式的原理解析

熱門標(biāo)簽:百應(yīng)電話機(jī)器人優(yōu)勢 地圖標(biāo)注費(fèi)用是多少 曲靖移動(dòng)外呼系統(tǒng)公司 武漢網(wǎng)絡(luò)外呼系統(tǒng)服務(wù)商 電話外呼系統(tǒng)改號(hào) 外呼系統(tǒng)打電話上限是多少 怎樣在地圖標(biāo)注銷售區(qū)域 南昌三維地圖標(biāo)注 啥是企業(yè)400電話辦理

摘要:MySQL JDBC抽取到底應(yīng)該采用什么樣的方式,且聽小編給你娓娓道來。

小編最近在云上的一個(gè)遷移項(xiàng)目中被MySQL抽取模式折磨的很慘。一開始爆內(nèi)存被客戶懟,再后來遷移效率低下再被懟。MySQL JDBC抽取到底應(yīng)該采用什么樣的方式,且聽小編給你娓娓道來。

1.1 Java-JDBC通信原理

JDBC與數(shù)據(jù)庫之間的通信是通過socket完,大致流程如下圖所示。Mysql Server ->內(nèi)核Socket Buffer -> 客戶端Socket Buffer ->JDBC所在的JVM

1.2 JDBC讀取數(shù)據(jù)的三種模式

1.2.1 方式1:使用JDBC默認(rèn)參數(shù)讀取數(shù)據(jù)

主要分為以下幾步:

1)Mysql Server通過OuputStream 向 Socket Server 本地Kennel Buffer 寫入數(shù)據(jù),這里是一次內(nèi)存拷貝。

2)當(dāng)Socket Server 本地Kennel Buffer 有數(shù)據(jù),就會(huì)通過TCP鏈路把數(shù)據(jù)傳輸?shù)絊ocket Client 所在機(jī)器的Kennel Buffer。

3)JDBC 所在JVM利用InputSream讀取本地Kennel Buffer 數(shù)據(jù)到JVM內(nèi)存,沒有數(shù)據(jù)時(shí),則讀取被阻塞。

接下來就是不斷重復(fù)1,2,3的過程。 問題 是,Socket Client 端的JVM在默認(rèn)模式下讀取Kennel Buffer是沒有考慮本機(jī)內(nèi)存大小的,有多少讀多少。如果數(shù)據(jù)太大,就會(huì)造成FULL GC,緊接著內(nèi)存溢出。

參考 JDBC API docs,默認(rèn)模式 Java demo 代碼如下

1.2.2 方式2:游標(biāo)查詢

為了解決方式1爆內(nèi)存的問題,JDBC提供了一個(gè)游標(biāo)參數(shù),在建立jdbc連接時(shí)加上useCursorFetch=true。設(shè)置游標(biāo)后,JDBC 每次會(huì)告訴Server端每次抽取的數(shù)據(jù)量,避免爆內(nèi)存。通信過程如下圖所示。

​ 方式2游標(biāo)查詢雖然解決了內(nèi)存溢出的問題,方式2極大的依賴網(wǎng)絡(luò)質(zhì)量。當(dāng)網(wǎng)絡(luò)時(shí)延增大,假設(shè)每次通信增加10ms,10萬次通信就會(huì)多出1000s。這里僅僅是每次發(fā)請(qǐng)求的RT,TCP每次發(fā)送報(bào)文,都要求反饋ACK保證數(shù)據(jù)可靠性。client每取100行(請(qǐng)求行數(shù)可配置),就會(huì)有多次通信,進(jìn)一步放大時(shí)延增加導(dǎo)致的效率問題。此外,游標(biāo)查詢下,Mysql無法預(yù)知查詢的結(jié)束時(shí)延,為了應(yīng)對(duì)自身的DML操作會(huì)在本地建立一個(gè)臨時(shí)空間存放要抽取的數(shù)據(jù)。因此,游標(biāo)查詢時(shí)會(huì)有以下幾個(gè)現(xiàn)象發(fā)生

a. IOPS飆升,Mysql將數(shù)據(jù)寫入到臨時(shí)空間,數(shù)據(jù)傳輸時(shí)從臨時(shí)空間讀取數(shù)據(jù),這都會(huì)引發(fā)大量IO操作。

b. 磁盤空間飆升,臨時(shí)空間生命周期存在于整個(gè)JDBC讀取階段,直到客戶端發(fā)起Result.close()時(shí)才會(huì)被Mysql回收。

c. CPU和內(nèi)存有一定比例上升。

有關(guān)游標(biāo)查詢的原理可參考博客MySQL JDBC StreamResult通信原理淺析以及JDBC源碼,本文不在贅述。

參考 JDBC API docs,游標(biāo)模式 Java demo 代碼如下

1.2.3 方式3: Stream讀取數(shù)據(jù)

方式1會(huì)導(dǎo)致JVM內(nèi)存溢出,方式2雖然不會(huì)FULL GC但是通信效率較低,而且也會(huì)導(dǎo)致Mysql服務(wù)端IOPS飆升,消耗磁盤空間等問題。因此,我們介紹Stream讀取數(shù)據(jù) ,流式需要在讀取Result前設(shè)置

方式3在通信前不會(huì)做任何Server-Cient的交互操作,避免通信效率低下。服務(wù)端準(zhǔn)備好數(shù)據(jù)寫入Server的Kennel Buffer中,這些數(shù)據(jù)通過TCP鏈路傳輸?shù)紺lient的Kennel Buffer中,緊接著client端inputStream.read()方法被喚醒去讀取數(shù)據(jù),與方式1不同,client每次只會(huì)讀取一個(gè)package大小的數(shù)據(jù),如果一個(gè)package不滿一行則會(huì)再讀取一個(gè)package。當(dāng)client消費(fèi)數(shù)據(jù)的速度不及數(shù)據(jù)傳輸速率時(shí),client端kennel區(qū)的數(shù)據(jù)就會(huì)被堆滿,緊接著Server端的kennel數(shù)據(jù)也會(huì)堆滿進(jìn)而阻塞了OuputStream。這樣,JDBC在Stream模式下就像一個(gè)水管連接兩個(gè)蓄水池,Client和Server達(dá)到一個(gè)平衡。

​對(duì)于JDBC客戶端,由于每次都是從kennel讀取數(shù)據(jù),效率會(huì)比方式2高很多,每次讀取一小部分?jǐn)?shù)據(jù)也不會(huì)導(dǎo)致JVM內(nèi)存溢出。對(duì)于服務(wù)端,Mysql每次都是往kennel寫數(shù)據(jù),無需建立臨時(shí)空間,不涉及IO讀取,服務(wù)端壓力也變小了。當(dāng)然,方式3也有自己的問題,例如Stream流式時(shí)無法cancel,cancel不阻塞等等。

參考 JDBC API docs,網(wǎng)上很多教程需要設(shè)置useCursorFetch=trueResultSet.FETCH_REVERSE等,其實(shí)小編研究完JDBC驅(qū)動(dòng)源碼后發(fā)現(xiàn),只需要設(shè)fetchSize=Integer. MIN_VALUE,其他配置均和默認(rèn)配置保持一致即可。游標(biāo)模式 Java demo 代碼如下

1.3 云數(shù)據(jù)遷移服務(wù)在三種模式下的調(diào)優(yōu)

云數(shù)據(jù)遷移服務(wù)(Cloud Data Migration, CDM)是華為云上一個(gè)遷移工具,詳見 CDM官網(wǎng) ,小編則通過CDM介紹如何切換三種模式抽取數(shù)據(jù)。CDM默認(rèn)使用的是方式3,流式抽取數(shù)據(jù),如果需要切換方式1,方式2需額外配置。

1.3.1 配置方式1:默認(rèn)讀取

新建Mysql連接器,建立方法詳見官網(wǎng),在高級(jí)屬性中增加useCursorFetch=false和adopt.stream=false

1.3.2 配置方式2:游標(biāo)查詢

編輯Mysql連接器,在高級(jí)屬性中增加useCursorFetch=true和adopt.stream=false。游標(biāo)查詢的大小可通過界面上的Fetch Size調(diào)整,默認(rèn)1000。

1.3.3 配置方式3:流式

CDM默認(rèn)走的流式,無需額外配置。注意Stream模式下,界面上的 Fetch Size 是不起作用的,原因參考上一節(jié)。

1.3.4 性能對(duì)比

新建Mysql2Hive的CDM遷移作業(yè),源表101個(gè)字段,100萬行數(shù)據(jù),配置如下

方式1:寫入100萬行數(shù)據(jù)耗時(shí)1m22s

方式2:同樣寫入100萬行,調(diào)整fetchSzie分別為1,10,100,100,最低耗時(shí)2m1s

方式3:同樣寫入100萬行,耗時(shí)1m5s

小編還測試了100萬的小表,明顯方式1和方式3的速率要遠(yuǎn)遠(yuǎn)高于方式2,另外小編還測試了1000萬的大表,方式1爆內(nèi)存,方式2正常遷移但耗時(shí)20分鐘以上,而方式3仍然可以在15分鐘內(nèi)跑完。

到此這篇關(guān)于從云數(shù)據(jù)遷移服務(wù)看MySQL大表抽取模式的原理解析的文章就介紹到這了,更多相關(guān)MySQL大表抽取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • mysql8.0.11數(shù)據(jù)目錄遷移的實(shí)現(xiàn)
  • mysql8.0.20數(shù)據(jù)目錄遷移的方法
  • 如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫
  • mysql事件之修改事件(ALTER EVENT)、禁用事件(DISABLE)、啟用事件(ENABLE)、事件重命名及數(shù)據(jù)庫事件遷移操作詳解
  • Docker版的MySQL5.7升級(jí)到MySQL8.0.13,數(shù)據(jù)遷移
  • Mysql的數(shù)據(jù)庫遷移到另一個(gè)機(jī)器上的方法詳解
  • MySQL數(shù)據(jù)庫遷移快速導(dǎo)出導(dǎo)入大量數(shù)據(jù)
  • python制作mysql數(shù)據(jù)遷移腳本
  • MySQL數(shù)據(jù)遷移相關(guān)總結(jié)

標(biāo)簽:吉林 資陽 錦州 隨州 荊州 甘南 滄州 黑河

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《從云數(shù)據(jù)遷移服務(wù)看MySQL大表抽取模式的原理解析》,本文關(guān)鍵詞  從,云,數(shù)據(jù),遷移,服務(wù),看,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《從云數(shù)據(jù)遷移服務(wù)看MySQL大表抽取模式的原理解析》相關(guān)的同類信息!
  • 本頁收集關(guān)于從云數(shù)據(jù)遷移服務(wù)看MySQL大表抽取模式的原理解析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品人人做人人爽人人添| 欧美久久久久久蜜桃| 日韩精品色哟哟| 亚洲成av人片| 亚洲综合激情另类小说区| 亚洲精品一卡二卡| 亚洲欧美日韩系列| 一区二区三区不卡在线观看| 亚洲激情自拍偷拍| 一区二区三区在线观看视频| 一区二区不卡在线视频 午夜欧美不卡在| 国产欧美中文在线| 综合欧美亚洲日本| 亚洲在线免费播放| 天天色天天操综合| 黑人巨大精品欧美黑白配亚洲| 久久99久久99精品免视看婷婷| 国产一区二区三区四 | 91黄色激情网站| 欧美日韩一区不卡| 欧美不卡一二三| 国产午夜精品一区二区三区四区| 国产精品理论在线观看| 亚洲精品中文在线影院| 日韩专区一卡二卡| 国产成人日日夜夜| 欧美性极品少妇| 精品少妇一区二区三区在线视频| 欧美国产成人在线| 亚洲成人第一页| 国产在线精品一区二区三区不卡 | 国产经典欧美精品| jiyouzz国产精品久久| 欧美日韩精品综合在线| 久久久久青草大香线综合精品| 中文字幕一区日韩精品欧美| 水蜜桃久久夜色精品一区的特点| 精品亚洲国内自在自线福利| 色偷偷久久一区二区三区| 7777精品伊人久久久大香线蕉超级流畅| 欧美一级在线观看| 亚洲女同ⅹxx女同tv| 国内外精品视频| 在线观看中文字幕不卡| 国产欧美日韩综合| 奇米精品一区二区三区在线观看 | 亚洲激情自拍偷拍| 国内国产精品久久| 欧美日韩在线播放三区四区| 中文字幕精品一区二区三区精品| 日本一区中文字幕| 91国内精品野花午夜精品| 久久影音资源网| 视频精品一区二区| 在线一区二区三区四区五区| 国产日产欧美一区| 久久91精品久久久久久秒播| 欧美性色综合网| 日韩毛片一二三区| 成人午夜av电影| 精品久久久久一区| 裸体歌舞表演一区二区| 欧美日韩亚洲综合一区二区三区| 亚洲精品老司机| av中文字幕一区| 中文字幕永久在线不卡| 成人午夜又粗又硬又大| 国产欧美日韩久久| 国产一区二区三区| 久久免费精品国产久精品久久久久| 免费人成在线不卡| 欧美一区午夜精品| 免费精品视频在线| 欧美成人精品二区三区99精品| 日韩av不卡一区二区| 欧美日本精品一区二区三区| 午夜影院久久久| 7777精品伊人久久久大香线蕉完整版 | 国产精品电影一区二区三区| 成人av资源站| 亚洲三级免费电影| 欧美亚洲自拍偷拍| 午夜精品久久久久久久久久| 91精品国产综合久久福利软件| 亚洲韩国精品一区| 欧美一区二区美女| 麻豆国产一区二区| 久久久久久久久一| 97成人超碰视| 天天爽夜夜爽夜夜爽精品视频| 91精品欧美久久久久久动漫| 精品一区二区成人精品| 中文字幕 久热精品 视频在线| www..com久久爱| 亚洲一区二区在线观看视频| 777奇米四色成人影色区| 韩国成人福利片在线播放| 久久久影视传媒| 99免费精品在线| 婷婷久久综合九色综合绿巨人| 精品国产sm最大网站| 99国内精品久久| 日本不卡视频在线观看| 国产精品你懂的在线欣赏| 欧美无乱码久久久免费午夜一区 | 欧美成人官网二区| 成人手机电影网| 亚洲一区国产视频| 久久久综合精品| 日本韩国一区二区| 国产一区二区三区久久悠悠色av | 欧美电影免费观看高清完整版在线| 国产福利一区二区| 亚洲图片一区二区| 国产亚洲精久久久久久| 在线视频你懂得一区| 国产乱子伦视频一区二区三区| 亚洲乱码中文字幕综合| www激情久久| 欧美日韩1234| 成人激情动漫在线观看| 日本麻豆一区二区三区视频| 亚洲视频在线一区观看| 精品日产卡一卡二卡麻豆| 日本电影欧美片| 国产成人免费视频网站高清观看视频| 亚洲国产成人porn| 亚洲视频免费在线| 国产欧美一区二区精品秋霞影院| 欧美人与性动xxxx| 色婷婷激情综合| 成a人片亚洲日本久久| 国模娜娜一区二区三区| 日本色综合中文字幕| 夜夜嗨av一区二区三区中文字幕| 国产目拍亚洲精品99久久精品 | 国产精品一二三四五| 奇米色777欧美一区二区| 亚洲图片自拍偷拍| 亚洲亚洲人成综合网络| 亚洲三级电影全部在线观看高清| 日本一区二区三区在线不卡| 欧美成人午夜电影| 日韩视频永久免费| 制服丝袜在线91| 欧美日韩色一区| 欧美三级乱人伦电影| 一本一道久久a久久精品 | 国产精品一二三| 国产一区在线观看视频| 日本不卡在线视频| 人人爽香蕉精品| 乱一区二区av| 国产精品原创巨作av| 国产成人亚洲精品狼色在线| 福利91精品一区二区三区| 韩国女主播成人在线| 国产伦精品一区二区三区视频青涩 | 精品日韩一区二区三区 | 欧美午夜宅男影院| 欧美三级中文字| 欧美群妇大交群中文字幕| 欧美一区二区高清| 精品日韩在线观看| 欧美激情一区在线观看| 亚洲欧美综合网| 亚洲国产精品一区二区www在线| 亚洲国产综合在线| 九色|91porny| 国产99一区视频免费| 99国产精品久久久久| 欧美三级中文字| 久久久久久久久久电影| 亚洲图片欧美激情| 无码av中文一区二区三区桃花岛| 久久精品国产亚洲高清剧情介绍 | 亚洲h在线观看| 日本在线不卡一区| 高清不卡在线观看av| 欧美中文字幕亚洲一区二区va在线 | 精品亚洲porn| 91免费版在线看| 欧美日韩一区二区欧美激情 | 欧美一区二区三区免费视频| 国产91在线看| 日韩成人精品视频| 欧美日韩免费电影| 在线精品观看国产| 国产亚洲人成网站| 亚洲成人综合视频| 不卡视频在线观看| 欧美精选一区二区| 久久久久97国产精华液好用吗| 一二三四区精品视频| 国产精品一二三四| 5月丁香婷婷综合| 亚洲人成电影网站色mp4| 久久成人av少妇免费| 欧美体内she精高潮| 中文字幕中文字幕一区二区|