MySQL和HBase的对比

news/2024/12/26 4:51:15 标签: 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 、非关系型数据库
为了处理海量数据,非关系数据库设计之初就是为了替代关系型数据库的关系
优点:
海量数据的增删改查是可以的
海量数据的维护和处理非常轻松
缺点:
数据和数据没有关系,他们之间就是单独存在的
非关系数据库没有关系,没有强大的事务关系,没有保证数据的完整性和安全性

http://www.niftyadmin.cn/n/5799826.html

相关文章

2024-12-24 NO1. XR Interaction ToolKit 环境配置

文章目录 1 软件配置2 安装 XRToolKit3 配置 OpenXR4 安装示例场景5 运行测试 1 软件配置 Unity 版本:Unity6000.0.26 ​ 2 安装 XRToolKit 创建新项目(URP 3D),点击进入 Asset Store。 进入“Unity Registry”页签&#xff0…

【0x001D】HCI_Read_Remote_Version_Information命令详解

目录 一、命令概述 二、命令格式及参数说明 2.12. HCI_Read_Remote_Version_Information 命令格式 2.2. Connection_Handle 三、生成事件 3.1. HCI_Command_Status 事件 3.2. HCI_Read_Remote_Version_Information_Complete 事件 四、命令执行流程 4.1. 命令发起阶段(…

寄存器控制LED灯亮

一、整体代码 LED.c #define RCC_APB2ENR (*(volatile unsigned int *)0x40021018) #define GPIOA_CRL (*(volatile unsigned int *)0x40010800) #define GPIOA_ODR (*(volatile unsigned int *)0x4001080C)#define GPIOB_CRL (*(volatile unsigned int *)0x40010C00) #…

k8s备份 ETCD , 使用velero工具进行备份

使用velero工具进行备份 Velero 是由 G0 语言编写的一款用于灾难恢复和迁移工具,可以安全的备份、恢复和迁移Kubernetes 集群资源和持久卷。 Velero 主要提供以下能力: ​ 备份 Kubernetes 集群资源,并在资源丢失情况下进行还原 ​ 将集群资源迁移到其他…

【Rust自学】6.4. 简单的控制流-if let

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 6.4.1. 什么是if let if let语法允许将if和let组合成一种不太冗长的方式来处理与一种模式匹…

使用libgif库解码全过程(C语言)-包括扩展块的处理

我看到的所有例程,都把扩展部分的处理跳过了,而我的动画是有透明度的,这就导致解码后的图像在有透明色的像素部分,呈现了很多的黑点,或者闪白的情况出现。经过调试,终于成功。 文件格式 先了解一下GIF的文…

NLP 中文拼写检测纠正论文-01-介绍了SIGHAN 2015 包括任务描述,数据准备, 绩效指标和评估结果

拼写纠正系列 NLP 中文拼写检测实现思路 NLP 中文拼写检测纠正算法整理 NLP 英文拼写算法,如果提升 100W 倍的性能? NLP 中文拼写检测纠正 Paper java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊! 一个提升英文单词拼…

docker 释放磁盘空间--常用清理命令

1. 清理未使用的镜像、容器、网络和数据卷 使用 docker system prune 命令可以清理未使用的镜像、容器、网络和数据卷: # docker system prune 如果你想更彻底地清理,包括停止的容器和所有未使用的数据卷,可以使用 --volumes 选项&#xf…