MongoDB、ElasticSearch、Redis、HBase这四种热门数据库的优缺点及应用场景
MongoDB
MongoDB是当今最火爆的NoSQL数据库。MongoDB最早在09年发布,算得上是早期大数据时代的数据库代表作了。随着MongoDB的火爆,研发MongoDB的团队还专门成立了MongoDB公司来对MongoDB进行维护和推广,现在这个公司已经在纳斯达克上市,市值达到十几亿美元,算得上是技术变现的典范了。
MongoDB最大的特点是表结构灵活可变,字段类型可以随时修改。MongoDB中的每一行数据只是简单的被转化成Json格式后存储,因此MongoDB中压根没有MySQL中表结构这样的概念,你可以直接简单粗暴的将任意结构的数据塞入同一个表中,压根不必考虑表结构的限制,更不必像MySQL一样因为要修改数据表结构而大费周折。简而言之,往MySQL写数据像是在做填空题,你写入的数据必须与最早定义的表结构一致,而往MongoDB写数据就像是在做问答题,想怎么写就怎么写,这灵活度不要爽太多。
说完MongoDB的优点也该说一说它的缺点了。MongoDB不需要定义表结构这个特点给表结构的修改带来了极大的方便,但是也给多表查询、复杂事务等高级操作带来了阻碍。因此,如果你的数据的逻辑结构非常复杂,经常需要进行复杂的多表查询或者事务操作,那显然还是MySQL这类关系型数据库更合适。
得益于MongoDB的这些特点,MongoDB很适合那些表结构经常改变,数据的逻辑结构没又没那么复杂不需要多表查询操作,数据量又比较大的应用场景。例如,有一个游戏应用,需要存储每个用户的信息,用户分为法师、战士等具有不同属性的角色,还有装备、技能等很多结构复杂的信息,游戏每次更新
MongoDB、ElasticSearch、Redis、HBase这四种热门数据库的优缺点及应用场景相关推荐
- 计算机类和鼠标类是什么关系,四种鼠标类型的优缺点
四种鼠标类型的优缺点 鼠标的种类有很多,目前常用的鼠标按照定位原理分为光电鼠标.激光鼠标.蓝光鼠标和蓝影鼠标,可能大部分用户并不了解它们之间的区别,只有少数游戏玩家听说过这些鼠标种类.下面就来和小编一 ...
- 大数据时代MongoDB、ES、Redis、HBase这四种数据库你应该懂
数据库对互联网开发的重要性就不必多说了.作为大数据和AI时代的互联网er,如果你还是只懂MySQL,那你可就火星大发了.下面给大家总结下每个互联网er都必须懂的几种数据库产品. MongoDB Mon ...
- 计算机主机箱前后都有什么,目前四种热门的主机机箱设计都有哪些优缺点?
在DIY里面机箱算是最没技术含量的产品之一,不过它却是与DIYer接触时间最长的东西.气味大师每天都会按下机箱开机键,也会空余时间瞄上几眼.机箱确实是对DIY影响最大的产品之一,今天我来盘点一下201 ...
- 干货 | Elasticsearch 词频统计的四种方案
1.词频相关实战问题 最近词频统计问题被问到的非常多,词频统计问题清单如下: Q1:Elasticsearch可以根据检索词在doc中的词频进行检索排序嘛? Q2:求教 ES 可以查询某个索引中某个t ...
- 四种分布式数据库场景选型、优缺点对比分析和未来展望 | 趋势解读
[摘要]随着互联网金融场景的不断拓展,海量的数据访问和处理造成传统的集中式数据库开始表现出性能瓶颈,分布式数据库的研究和场景使用应运而生,而数据的安全和合规也随着企业对数据使用的要求越来越高更加重视. ...
- VMware vSphere四种迁移类型的区别与适应场景
最近一直刚开始接触VMware vSphere这款虚拟化软件,每天的过程都是上午学新知识不理解,痛苦:下午实验各种出错,折磨:晚上回顾一天所学,五味陈杂,不过相比上午,下午已经好很多了.然后第二天依旧 ...
- html鼠标四种,鼠标有哪些种类?四种鼠标类型的优缺点
鼠标的种类有很多,目前常用的鼠标按照定位原理分为光电鼠标.激光鼠标.蓝光鼠标和蓝影鼠标,可能大部分用户并不了解它们之间的区别,只有少数游戏玩家听说过这些鼠标种类.今天我们就来说说光电鼠标.激光鼠标.蓝 ...
- app四种开发模式的优缺点
app的四种开发模式: 1.原生App开发(Native App, 本地应用程序,包内页面): 2.网页应用程序(Web App,移动web,包内页面). 3.采用Hybrid混合框架开发(Hybri ...
- Mysql四种常见数据库引擎
InnoDB存储引擎 InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,上图也看到了,InnoDB是默认的MySQL引擎.InnoDB主要特性有: MyISAM存储引 ...
最新文章
- cassandra的全文检索插件
- php的mpdf开发实例,mpdf自动分页加页码的方法
- 设置SSH免密码自动登录(使用别名)
- 关于Django中JsonResponse返回中文字典编码错误的解决方案
- 云+X案例展 | 民生类:基于AWS PaaS构建基础集团企业级中台
- 携程将推“3+2”工作模式:每周到岗3天,在家2天,你羡慕吗?
- vs code .lua.txt 后缀文件识别为lua的配置
- html5微信视频禁止自动全屏,关于HTML5 video标签在安卓版微信浏览器内被强行全屏播放的问题...
- iptables中DNAT、SNAT和MASQUERADE的理解
- 下一个阶段(用C++重写Lucene的计划)
- Linux下修改文件权限
- .Net 并发写入文件的多种方式
- 块级元素水平,垂直居中的两种方式
- CSS3过渡详解-遁地龙卷风
- Unity(三)EasyTouch5的使用
- 手机开热点,电脑连不上
- 【问题描述】编写一个程序计算出球、圆柱和圆锥的表面积和体积。
- python数码管倒计时程序_树莓派Python编程用1位数码管显示数字倒计时
- 【Go编程语言】 Go语言基础语法
- 怎样写出个正常的kawaii bass呢?