当前位置:网站首页>MongoDB系列之适用场景和不适用场景
MongoDB系列之适用场景和不适用场景
2022-06-26 12:41:00 【smileNicky】
MongoDB是一款开源的分布式架构的NoSQL数据库管理系统。在前面的NoSQL和SQL对比学习中,我们知道了NoSQL数据库系统和传统的RDBMS的不同和优点
1、MongoDB优点
可以简单列举MongoDB一些明显的主要的优点
- 速度:MongoDB比一般的关系型数据库快很多,作为面向文档的NoSQL数据库,MongoDB可以通过索引使访问文档变得很容易而且快速
- 分片:MongoDB另外一个优势是允许用户存储大量的数据,其通过分片的方式将数据分发到多个服务器上。
- 灵活性:因为MongoDB是非结构化的数据库系统,而且多种数据类型,所以不需要像关系型数据那样,进行特别的表结构设计,存储数据更加灵活
- 分布式:MongoDB数据库默认支持分布式,内带分布式的解决方案
2、MongoDB局限性
- 不支持连接:与支持连接的理性数据库不同,MongoDB 不支持。尽管可以通过手动编码来添加连接功能,但执行起来可能会很慢并影响性能。
- 数据大小有限制:MongoDB允许的文档最大值为16MB
- 不能无限嵌套:MongoDB的数据格式是BSON的,但是其不支持无限的嵌套,用户不能超过100级的文档嵌套
- 高内存:MongoDB会存储每个值对的键名。它还受到数据冗余的影响,因为它缺乏连接的功能。这会导致高内存使用率。
- 不支持业务复杂查询:MySQL这些类型数据库都可以进行表连接等等复杂业务查询,MongoDB是文档型的数据库,所以不支持联表(Collection)查询
3、适用场景
归纳了MongoDB一些比较明显的特征后,我们可以知道MongoDB的一些适用场景。
在MongoDB官网也会列举了MongoDB的适用场景:
- 1)网站实时数据:MongoDB 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及
高度伸缩性。- 2)数据缓存:由于性能很高,MongoDB 也适合作为信息基础设施的缓存层。在系统重启之后,由 MongoDB
搭建的持久化缓存层可以避免下层的数据源过载。- 3)大尺寸、低价值数据存储:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很
多时候程序员往往会选择传统的文件进行存储。- 4)高伸缩性场景:MongoDB 非常适合由数十或数百台服务器组成的数据库。MongoDB 的路线图中已经包
含对 MapReduce 引擎的内置支持。- 5)对象或 JSON 数据存储:MongoDB 的 BSON 数据格式非常适合文档化格式的存储及查询。
4、不适用场景
- 1)高度事务性系统:例如银行或会计这些金融系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
- 2)传统的商业智能应用:针对特定问题的 BI 数据库会对产生高度优化的查询方式。对于此类应用,关系型可能是更合适的选择。
所以,对于需要复杂 SQL 查询的问题。MongoDB是不太适合的,在技术选项上需要根据业务场景和公司实际情况选择合适的数据库,关系型数据库和NoSQL数据库各有优缺点,应该根据实际场景合理选择数据库
5、参考资料
- MongoDB应用场景:https://hevodata.com/learn/mongodb-use-case/
- MongoDB 官网地址:https://www.mongodb.com/
- MongoDB 官方英文文档:https://docs.mongodb.com/manual/
- MongoDB 各平台下载地址:https://www.mongodb.com/download-center#community
边栏推荐
- 解中小企业之困,百度智能云打个样
- Vivado error code [drc pdcn-2721] resolution
- QT . Establishment and use of pri
- I - Dollar Dayz
- Uva5009 error curves three points
- B - Bridging signals
- 8. [STM32] timer (TIM) -- interrupt, PWM, input capture experiment (proficient in timer)
- What should the software test report include? Interview must ask
- May product upgrade observation station
- Go structure method
猜你喜欢
![[how to connect the network] Chapter 2 (next): receiving a network packet](/img/f5/33e1fd8636fcc80430b3860d069866.png)
[how to connect the network] Chapter 2 (next): receiving a network packet

Processing polyhedron change

Update and download of Beifu EtherCAT XML description file

Beifu PLC realizes data power-off maintenance based on cx5130

MediaPipe手势(Hands)

What are the common categories of software testing?

May product upgrade observation station

防火墙介绍

10秒内完成火灾预警,百度智能云助力昆明官渡打造智慧城市新标杆

利用scrapy爬取句子迷网站优美句子存储到本地(喜欢摘抄的人有福了!)
随机推荐
Beifu twincat3 can read and write CSV and txt files
Electron official docs series: Distribution
Electron official docs series: Processes in Electron
Thinking caused by the error < note: candidate expectations 1 argument, 0 provided >
8、【STM32】定时器(TIM)——中断、PWM、输入捕获实验(一文精通定时器)
C language: Exercise 2
mariadb学习笔记
H5视频自动播放和循环播放
【Spark】. Explanation of several icons of scala file in idea
8. [STM32] timer (TIM) -- interrupt, PWM, input capture experiment (proficient in timer)
I - Dollar Dayz
桥接模式(Bridge)
Sinotech software outsourcing
Es6: iterator
Dark horse notes - Common APIs
12 SQL optimization schemes summarized by old drivers (very practical)
Generate JDE dot train
Ubuntu installation and configuration PostgreSQL (18.04)
H - Sumsets POJ 2229
code force Party Lemonade