MySQL和HBase的使用对比

 更新时间:2024年12月25日 09:59:37   作者:lucky_syq  
MySQL和HBase是两种不同的数据库,MySQL是一个关系型数据库,支持事务,而HBase是一个NoSQL数据库,支持海量数据的读写,MySQL适用于OLTP业务,而HBase适用于OLAP业务

MySQL和HBase的对比

  • Mysql:关系型数据库,主要面向 OLTP ,支持事务,支持二级索引,支持 sql ,支持主从、 Group Replication 架构模型(此处以 Innodb 为例,不涉及别的存储引擎)。
  • HBase:底层使用 HDFS (存储计算分离),支持海量数据读写(尤其是写),支持上亿行、上百万列的,面向列的分布式NoSql 数据库。天然分布式(数据分片、故障自恢复 ) ,主从架构,不支持事务,不支持二级索引,不支持sql 。

1、数据存储方式

1)MySQL

MySQL采用行存储,MySQL行存储的方式比较适合OLTP业务。

MySQL优点:

  • 体积小、速度快、总体拥有成本低,开源;
  • 支持多种操作系统;
  • 是开源数据库,提供的接口支持多种语言连接操作 ;
  • MySQL 的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C 语言实现的 mysql 能很容易充分利用 CPU ;
  • MySql 有一个非常灵活而且安全的权限和口令系统。当客户与 MySql 服务器连接时,他们之间所有的口令传送被加密,而且 MySql 支持主机认证;
  • 支持 ODBC for Windows , 支持所有的 ODBC 2.5 函数和其他许多函数, 可以用 Access 连接 MySql 服务器, 使得应用被扩展;
  • 支持大型的数据库, 可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,可以针对不同的应用进行相应的修改;
  • 拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性;
  • MySQL 同时提供高度多样性,能够提供很多不同的使用者介面,包括命令行客户端操作,网页浏览器,以及各式各样的程序语言介面,例如C+ , Perl , Java , PHP ,以及 Python 。你可以使用事先包装好的客户端,或者干脆自己写一个合适的应用程序。MySQL 可用于 Unix , Windows ,以及 OS/2 等平台,因此它可以用在个人电脑或者是服务器上。

MySQL缺点:

  • 不支持热备份;
  • MySQL 最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用 mysqladmin 来重读用户权限时才发生改变;
  • 没有一种存储过程 (Stored Procedure) 语言,这是对习惯于企业级数据库的程序员的最大限制;
  • MySQL 的价格随平台和安装方式变化。 Linux 的 MySQL 如果由用户自己或系统管理员而不是第三方 安装则是免费的,第三方案则必须付许可费。 Unix 或 linux 自行安装 免费 、 Unix 或 Linux 第三方安装收费。

2)HBase

HBase是面向列的 NoSql 数据库,列存储的方式比较适合 OLAP 业务,而 HBase 采用了列族的方式平衡了OLTP和 OLAP ,支持水平扩展,如果数据量比较大、对性能要求没有那么高、并且对事务没有要求的话,HBase 也是个不错的选择。

HBase优点:

  • 列的可以动态增加,并且列为空就不存储数据,节省存储空间
  • HBase自动切分数据,使得数据存储自动具有水平 scalability
  • HBase可以提供高并发读写操作的支持

HBase缺点:

  • 不能支持条件查询,只支持按照 Row key 来查询
  • 暂时不能支持 Master server 的故障切换,当 Master 宕机后,整个存储系统就会挂掉( HBase 虽然本身不能故障切换,但是可以配合ZooKeeper 来实现 HMaster 主备节点的 failover )

2、适用场景

3、关系型数据库

优点:

  • 数据之间有关系,进行数据的增删改查的时候是非常方便的;
  • 关系型数据库是有事务操作的,保证数据的完整性和一致性

缺点:

  • 因为数据和数据是有关系的,底层是运行了大量的算法,大量算法会降低系统的效率,会降低性能
  • 面对海量数据的增删改查的时候会显的无能为力
  • 海量数据对数据进行维护变得非常的无力
  • 因此,关系型数据库适合处理一般量级的数据

4、非关系型数据库

为了处理海量数据,非关系数据库设计之初就是为了替代关系型数据库的关系

优点:

  • 海量数据的增删改查是可以的
  • 海量数据的维护和处理非常轻松

缺点:

  • 数据和数据没有关系,他们之间就是单独存在的
  • 非关系数据库没有关系,没有强大的事务关系,没有保证数据的完整性和安全性

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux下MySQL数据库的主从同步复制配置

    Linux下MySQL数据库的主从同步复制配置

    这篇文章主要介绍了Linux下MySQL数据库的主从同步配置,
    2017-11-11
  • MySQL数据更新操作的两种办法(数据可视化工具和SQL语句)

    MySQL数据更新操作的两种办法(数据可视化工具和SQL语句)

    MySQL是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD,下面这篇文章主要给大家介绍了关于MySQL数据更新操作的两种办法,需要的朋友可以参考下
    2023-03-03
  • 在阿里云的CentOS环境中安装配置MySQL的教程

    在阿里云的CentOS环境中安装配置MySQL的教程

    这篇文章主要介绍了在阿里云的CentOS环境中安装配置MySQL的教程,注意一下文章开头所提到的系统自带MariaDB的问题,需要的朋友可以参考下
    2015-12-12
  • 如何利用MySQL的binlog恢复误删数据库详解

    如何利用MySQL的binlog恢复误删数据库详解

    MySQL一旦误删数据库之后恢复数据很麻烦,这里记录一下艰辛的恢复过程,这篇文章主要给大家介绍了关于如何利用MySQL的binlog恢复误删数据库的相关资料,需要的朋友可以参考下
    2021-09-09
  • 如何配置全世界最小的 MySQL 服务器

    如何配置全世界最小的 MySQL 服务器

    Intel Edison 是一个小巧的计算机基于 22 nm 的 Silvermont 双核 Intel Atom CPU 主频 500MHz运行 Linux (叫做 Yocto 的基于 Ubuntu 的发布版)。为了对 Edison 进行编程,我们需要一块接口板。可以选择的板子包括兼容Arduino的接口板 (包含了 SD 卡) 还有 Intel 接口板。
    2016-04-04
  • MySQL Json类型字段IN查询分组优化

    MySQL Json类型字段IN查询分组优化

    这篇文章主要为大家介绍了MySQL Json类型字段IN查询分组优化,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • B-Tree的性质介绍

    B-Tree的性质介绍

    今天小编就为大家分享一篇关于B-Tree的性质介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Mysql索引性能优化问题解决方案

    Mysql索引性能优化问题解决方案

    这篇文章主要介绍了Mysql索引性能优化问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Mysql创建通用设备管理信息系统数据库

    Mysql创建通用设备管理信息系统数据库

    下面通过图文并茂的方式给大家介绍通用设备管理信息系统数据库的创建过程,感兴趣的朋友一起学习
    2016-04-04
  • MySQL中设置NULL和空白字符串的问题及解决

    MySQL中设置NULL和空白字符串的问题及解决

    这篇文章主要介绍了MySQL中设置NULL和空白字符串的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08

最新评论