1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Hbase與MySQL對(duì)比,區(qū)別是什么?

        共 1966字,需瀏覽 4分鐘

         ·

        2021-11-04 19:24

        程序員的成長(zhǎng)之路
        互聯(lián)網(wǎng)/程序員/技術(shù)/資料共享?
        關(guān)注


        閱讀本文大概需要 2.8 分鐘。

        作者:莊小焱
        來(lái)源:https://blog.csdn.net/weixin_41605937/article/details/110933984

        MySQL + HBase是我們?nèi)粘?yīng)用中常用的兩個(gè)數(shù)據(jù)庫(kù),分別解決應(yīng)用的在線事務(wù)問(wèn)題和大數(shù)據(jù)場(chǎng)景的海量存儲(chǔ)問(wèn)題。

        # 從架構(gòu)對(duì)比看差異


        相比MySQL,HBase的架構(gòu)特點(diǎn):

        1.完全分布式(數(shù)據(jù)分片、故障自恢復(fù))
        2.底層使用HDFS(存儲(chǔ)計(jì)算分離)。

        由架構(gòu)看到的能力差異:

        1. MySQL:運(yùn)維簡(jiǎn)單(組件少)、延時(shí)低(訪問(wèn)路徑短)
        2.HBase:擴(kuò)展性好、內(nèi)置容錯(cuò)恢復(fù)與數(shù)據(jù)冗余


        ?

        #?從引擎結(jié)構(gòu)看差異

        ?相比MySQL,HBase的內(nèi)部引擎特點(diǎn):


        1. HBase原生沒(méi)有sQL引擎(無(wú)法使用sQL訪問(wèn),使用APlI),云HBase增強(qiáng)版(Lindorm)及開(kāi)源Phoenix均提供sQL能力
        2.HBase使用LSM(Log-Structure Merge)樹(shù),,Innodb使用B+樹(shù)。




        由引擎結(jié)構(gòu)(B+Tree vs LSM Tree)看到的能力差異:

        1.MySQL:讀寫(xiě)均衡、存在空間碎片
        2. HBase:側(cè)重于寫(xiě)、存儲(chǔ)緊湊無(wú)浪費(fèi)、Io放大、數(shù)據(jù)導(dǎo)入能力強(qiáng)

        # 關(guān)于LSM樹(shù)和B+樹(shù)的理解


        目的是為了減少磁盤(pán)IO,

        索引:某種數(shù)據(jù)結(jié)構(gòu),方便查找數(shù)據(jù)

        hash索引不利于范圍查詢,使用樹(shù)結(jié)構(gòu)

        B+樹(shù)


        • 從磁盤(pán)讀數(shù)據(jù)是以頁(yè)為單位,根據(jù)這個(gè)特點(diǎn)使用平衡多路查找樹(shù)

        • B+樹(shù)的非葉子節(jié)點(diǎn)存放索引,葉子節(jié)點(diǎn)存放數(shù)據(jù)

        • 非葉子節(jié)點(diǎn)能夠存放更多的索引,樹(shù)的高度更低

        • 葉子節(jié)點(diǎn)通過(guò)指針相連,有利于區(qū)間查詢

        • 葉子節(jié)點(diǎn)和根節(jié)點(diǎn)的距離基本相同,查找的效率穩(wěn)定

        • 數(shù)據(jù)插入導(dǎo)致葉子節(jié)點(diǎn)分裂,最終導(dǎo)致邏輯連續(xù)的數(shù)據(jù)存放到不同物理磁盤(pán)塊位置,導(dǎo)致區(qū)間查詢效率下降


        LSM Tree


        • LSM(Log-Structured Merge),LevelDB,RocksDB,HBase,Cassandra等都是基于LSM結(jié)構(gòu)

        • HDD,SSD順序讀寫(xiě)的速度都高于隨機(jī)讀寫(xiě),寫(xiě)入日志就是順序?qū)?/span>

        • WAL,memtable,sstable

        • 有利于寫(xiě),不利于讀,先從memtable查找,再到磁盤(pán)所有的sstable文件查找

        • Compaction的目的是減少sstable文件數(shù)量,緩解讀放大的問(wèn)題,加速查找可以對(duì)sstable文件使用布隆過(guò)濾器

        • Compaction策略

          STCS(SIze-Tiered Compaction Strategy)空間放大和讀放大問(wèn)題

          LCS(Leveled Compaction Strategy)寫(xiě)放大問(wèn)題

        • Compaction會(huì)引入寫(xiě)放大問(wèn)題,在Value較大時(shí)采用KV分離存儲(chǔ)緩解寫(xiě)放大

        • 寫(xiě)操作多于讀操作時(shí),LSM樹(shù)有更好的性能,因?yàn)殡S著insert操作,為了維護(hù)B+樹(shù)結(jié)構(gòu),節(jié)點(diǎn)分裂。讀磁盤(pán)的隨機(jī)讀寫(xiě)概率會(huì)變大,性能會(huì)逐漸減弱。LSM樹(shù)相比于B+樹(shù),多次單頁(yè)隨機(jī)寫(xiě)變成一次多頁(yè)隨機(jī)寫(xiě),復(fù)用了磁盤(pán)尋道時(shí)間,極大提高寫(xiě)性能。不過(guò)付出代價(jià)就是放棄部分讀性能。


        # 數(shù)據(jù)訪問(wèn)


        相同之處:數(shù)據(jù)以表的模型進(jìn)行邏輯組織,應(yīng)用對(duì)數(shù)據(jù)進(jìn)行增刪改查


        不同之處:MySQL的SQL功能更豐富:事務(wù)能力更強(qiáng),HBase既可以用APIl進(jìn)行更靈活、性能更好的訪問(wèn),也可以借助Phoenix使用標(biāo)準(zhǔn)sQL訪問(wèn);只支持單行事務(wù)

        HBase的特色功能--TTL



        HBase的特色功能—多版本


        HBase的特色功能—多列簇


        ?HBase的特色功能—MOB


        ?# 從生態(tài)看差異


        MySQL:滿足APP的在線數(shù)據(jù)庫(kù)存儲(chǔ),一般有我足矣


        大數(shù)據(jù)圈:應(yīng)用于大數(shù)據(jù)場(chǎng)景的存儲(chǔ)、計(jì)算及管理組件

        MySQL:一般可獨(dú)立滿足在線應(yīng)用的數(shù)據(jù)存儲(chǔ)需求,或者與少量組件配合(如緩存、分庫(kù)中間件)


        HBase:一般需要和較多大數(shù)據(jù)組件一起配合完成應(yīng)用場(chǎng)景,場(chǎng)景架構(gòu)的設(shè)計(jì)、實(shí)施存在較大的挑戰(zhàn)

        # 總結(jié)


        # 哪些場(chǎng)景的存儲(chǔ)適合HBase ?






        ?HBase不是MySQL的替換,HBase是業(yè)務(wù)規(guī)模及場(chǎng)景擴(kuò)張后,對(duì)MySQL的自然延伸

        推薦閱讀:

        頭條三面:toString()、String.valueOf、(String)強(qiáng)轉(zhuǎn),有啥區(qū)別?

        雷軍做程序員時(shí)寫(xiě)的博客

        最近面試BAT,整理一份面試資料《Java面試BATJ通關(guān)手冊(cè)》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。

        獲取方式:點(diǎn)個(gè)「在看」,點(diǎn)擊上方小卡片,進(jìn)入公眾號(hào)后回復(fù)「面試題」領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

        朕已閱?

        瀏覽 65
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日本在线视频一区二区三区 | 欧美精产国品一二三产品动漫 | 亚洲老少妇 | 亚洲大片一区二区三区跳转 | 亚洲综合图片视频 | 国产性爱网站 | 91爱爱.com | 国产最新视频 | 亚洲18禁| 壹屌探花|