mysql、mondodb、hbase、elasticsearch的区别

总结如下:

mysql
优点:
1、性能卓越服务稳定,很少出现异常宕机
2、因小巧安装复杂度低和使用方面以及执行速度快
3、开发入门门槛低
4、适合关系型数据表维护
5、有丰富的sql语句和聚合函数以及多种数据类型
6、有各种索引
7、适合强事务类型业务

缺点:
1.不适合T级别数据存储
2、数据扩展困难
3、不适合高并发写
4、模糊查询性能差
5、模式不自由

适合场景:关系型数据,数据量小数据

mongodb
优点:
1、文档模型数据存储(json)
2、横向扩展支持海量的数据和极高的并发
3、较高的写入和查询效率
4、支持二级索引查询
5、适合存储非事务性数据(特征)

缺点:
1、没有成熟的维护工具---window有提供的图形化界面和阿里云自带的图形化界面,基本上都需要shell来实现,没有mysql使用起来好(工具有:nosql和robo,推荐使用nosql)
2、占用空间太大(因为是内存性数据库所以吃内存厉害)
3、数据量大模糊查询效率慢
4、不适合事务性操作
5、不适合复杂sql查询

场景:
日志,第三方接入数据,爬虫数据,非事务性数据

hbase
优点:
1、存储量大
2、单表存储万亿行以上
3、数百万列
4、10比1数据压缩(减少空间)
5、支持亿级并发
6、写入数据毫秒级
7、强大的Phoenix功能(集成mybatis进行数据增删改查),可以建立普通和全文索引,建立全文索引模糊查询效率很高,底层实现原理是solr引擎支持(IK分词),开发过程中不关注solr
8、提供Spark服务存储查询场景和复杂分析功能
9、记录很稀疏(HBase为null的Column不会占用空间)
10、查询数量少耗时都在毫秒级别,大量数据读取可配合Spark一起用

缺点:
1、没有像mysql一样的图形化界面,创建表,索引,全文索引,修改表结构全靠程序和命令工具
2、请求的稳定性没有mysql好(可能会发生抖动GC,硬件故障、网络故障,region上下线(如发生balance,split,merge等))
3、因为是非关系型数据库不适合事务性操作
4、不适合做复杂sql查询(或者关联查询)
5、运维成本高

场景:
订单流水、交易记录、操作记录、日志、分析性数据、文档、图片、聊天信息、以及需要记录历史版本的数据
阿里应用场景如下:支付宝钱包的账单、淘宝里的物流详情,感知不到的有支付宝的风控(每一笔交易都会请求HBase数百次)

elasticsearch
优点:
1、分布式实时文件存储,可将每一个字段存入索引,使其可以被检索到(数据只支持json格式)
2、实时分析的分布式搜索引擎(支持全文搜索以及IK中文分词查询)
3、支持复杂聚合查询,查询效率高
4、日志数据分析: ELK技术栈(Elasticsearch + Logstash + Kibana)对日志数据进行采集和分析


缺点:
1、对硬件要求非常高


场景:
1、内容网站: 用户行为日志(点击、浏览、收藏、评论) + 社交网络数据+技术论坛或者论坛类的,数据分析
2、日志数据分析
3、电商、招聘、门户等网站的搜索服务
4、搜索领域: 百度、谷歌、全文检索、搜索推荐等


用图的形式来对比下各自优点和缺点    (用大小和速度来描述)
mysql
640?wx_fmt=jpeg

mongodb
640?wx_fmt=jpeg
hbase
640?wx_fmt=jpeg
ElasticSearch
640?wx_fmt=jpeg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值