两者属于不同类型数据库。HBASE是按列存储型数据库,MySQL是关系型数据库。
其中,关系型数据库(Mysql和Oracle):
表和表、表和字段、数据和数据存在着关系
关系型数据库优点:
1.数据之间有关系,进行数据的增删改查的时候是非常方便的
2.关系型数据库是有事务操作的,保证数据的完整性和一致性。
关系型数据库缺点:
1.因为数据和数据是有关系的,底层是运行了大量的算法
大量算法会降低系统的效率,会降低性能
2.面对海量数据的增删改查的时候会显的无能为力
3.海量数据对数据进行维护变得非常的无力
因此,关系型数据库适合处理一般量级的数据
非关系数据库的(redis和MangDB)
为了处理海量数据,非关系数据库设计之初就是为了替代关系型数据库的关系
优点:
1.海量数据的增删改查是可以的
2.海量数据的维护和处理非常轻松
缺点:
1.数据和数据没有关系,他们之间就是单独存在的
2.非关系数据库没有关系,没有强大的事务关系,没有保证数据的完整性和安全性
适合处理海量数据,保证效率,不一定安全(统计数据,例如微博数据)
Hbase的优缺点
1 列的可以动态增加,并且列为空就不存储数据,节省存储空间.
2 Hbase自动切分数据,使得数据存储自动具有水平scalability.
3 Hbase可以提供高并发读写操作的支持
Hbase的缺点:
1 不能支持条件查询,只支持按照Row key来查询.
2 暂时不能支持Master server的故障切换,当Master宕机后,整个存储系统就会挂掉.
补充
1.数据类型,Hbase只有简单的字符类型,所有的类型都是交由用户自己处理,它只保存字符串。而关系数据库有丰富的类型和存储方式。
2.数据操作:HBase只有很简单的插入、查询、删除、清空等操作,表和表之间是分离的,没有复杂的表和表之间的关系,而传统数据库通常有各式各样的函数和连接操作。
3.存储模式:HBase是基于列存储的,每个列族都由几个文件保存,不同的列族的文件时分离的。而传统的关系型数据库是基于表格结构和行模式保存的
4.数据维护,HBase的更新操作不应该叫更新,它实际上是插入了新的数据,而传统数据库是替换修改
5.可伸缩性,Hbase这类分布式数据库就是为了这个目的而开发出来的,所以它能够轻松增加或减少硬件的数量,并且对错误的兼容性比较高。而传统数据库通常需要增加中间层才能实现类似的功能。
原文:https://blog.csdn.net/hanlipenghanlipeng/article/details/56682346