區別:1、mysql是行存儲模式,hbase是列存儲模式;2、MySQL的底層是binlog,hbase的底層是hdfs;3、MySQL主要用來存儲業務數據,數據存儲量較小,而HBase主要用來存儲海量的業務數據和日志數據,數據存儲量大。
本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。
MySQL + HBase是我們日常應用中常用的兩個數據庫,分別解決應用的在線事務問題和大數據場景的海量存儲問題。
綜合對比
MySQL:是常用的數據庫,采用行存儲模式,底層是binlog,用來存儲業務數據,數據存儲量較小。
HBase:列式數據庫,底層是hdfs,可以存儲海量的數據,主要用來存儲海量的業務數據和日志數據。
從架構對比看差異
相比MySQL,HBase的架構特點:
1.完全分布式(數據分片、故障自恢復)
2.底層使用HDFS(存儲計算分離)。
由架構看到的能力差異:
1. MySQL:運維簡單(組件少)、延時低(訪問路徑短)
2.HBase:擴展性好、內置容錯恢復與數據冗余
從引擎結構看差異
相比MySQL,HBase的內部引擎特點:
1. HBase原生沒有sQL引擎(無法使用sQL訪問,使用APlI),云HBase增強版(Lindorm)及開源Phoenix均提供sQL能力
2.HBase使用LSM(Log-Structure Merge)樹,,Innodb使用B+樹。
由引擎結構(B+Tree vs LSM Tree)看到的能力差異:
1.MySQL:讀寫均衡、存在空間碎片
2. HBase:側重于寫、存儲緊湊無浪費、Io放大、數據導入能力強
數據訪問
相同之處:數據以表的模型進行邏輯組織,應用對數據進行增刪改查
不同之處:MySQL的SQL功能更豐富:事務能力更強,HBase既可以用APIl進行更靈活、性能更好的訪問,也可以借助Phoenix使用標準sQL訪問;只支持單行事務
【相關推薦:mysql視頻教程】