HBase vs MySQL - tenji/ks GitHub Wiki

HBase 与 MySQL 对比及适用场景

MySQL + HBase 是我们日常应用中常用的两个数据库,分别解决应用的在线事务问题和大数据场景的海量存储问题。

一、部署架构

MySQL部署架构

HBase部署架构

相比 MySQL,HBase 的架构特点:

  1. 完全分布式(数据分片、故障自恢复)
  2. 底层适用 HDFS(存储计算分离)

由架构看到的能力差异:

  1. MySQL:运维简单(组件少)、延时低(访问路径短)
  2. HBase:扩展性好、内置容错恢复与数据冗余

二、引擎架构

MySQL引擎结构

HBase引擎结构

HBase Bulkload

由引擎架构(B+ Tree vs LSM Tree)看到的能力差异:

  1. MySQL:读写均匀、存在空间碎片
  2. 侧重于写、存储紧凑无浪费、IO 放大、数据导入能力强

三、生态

MySQL生态

HBase生态

由生态看到的能力差异:

  1. MySQL:一般可独立满足在线应用的数据存储需求,或者与少量组件配合(如缓存、分库中间件)
  2. HBase:一般需要和较多大数据组件一起配合完成应用场景,场景架构的设计、实施存在较大的挑战

参考链接