MongDB有什么用

60次阅读
没有评论

共计 2343 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章给大家分享的是有关 MongDB 有什么用的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

1.     什么是 NoSQl
NoSQL:Not Only SQL,本质也是一种数据库的技术,相对于传统数据库技术 NoSQL 不会遵循一些 SQL 的约束,比如:
1.1SQL 标准:select * from table_name update table_name set  delete from table_name 这些传统关系型数据库(Oracle、Mysql,DB2)等关系型数据都遵循的 sql 标准。
1.2 事务的 ACID 特性:A(Atomicity 原子性)  C(Consistency 一致性)I(Isolation 隔离性)D(Durability 持久性)
1.3 表结构等(NoSQL 没有所谓的表结构)

2.    NoSQL 优点:
2.1 满足对数据库的高并发读写(一个应用中最先出现性能瓶颈的就是 DB 层,一般 Mysql 能支持的并发在机器硬盘上为 300 左右,固态硬盘上为 700 左右。因此高并发场景下很容易突破数据库的性能瓶颈,关系型数据库在高并发读写性能上用户体验较差或者当并发大到一定量是直接导致数据库崩溃)
2.2 对海量数据的搞笑存储和访问(传统关系型数据库当单表数据超过 700 万的时候用户体验就会极差,当数据量大到一定程度的时候需要考虑分库分表分区分片,读写分离,集群等手段保证数据库的性能。传统关系型数据库的横向扩展或纵向扩展维护成本较高,以及分布式事务的处理难度较大)
2.3 对数据库的高扩展性和高可用性(相对于传统关系型数据库更容易实现水平扩展和集群搭建)
2.4 灵活的数据结构,满足数据结构不固定的场景(传统关系型数据库有固定的表结构当需求频繁变化而且数据结构不定的时候,新的需求往往会因为涉及表结构的修改导致需求变更开发工作量大或牵一发而动全身的表结构修改不能实现新的需求)
3.    NoSQL 缺点:
3.1 一般不支持事务,即使现在一些 NoSQL 已经支持了事务如 Redis,MongoDB 但是它们的事务都是弱一致性的事务,从事务支持的完整性和严格性上大不如关系型数据库
3.2 实现复杂的 SQL 查询难度较大(比如要实现传统关系型数据库多表关联各种聚合函数的报表查询使用 NoSQL 实现难度较大)
3.3 运维人员数据维护门槛较高(目前的运维人员对关系型数据库的维护比较拿手,但是要维护 NoSQL 数据库还需学习)
3.4 目前不是主流的数据库技术(目前主流的数据库技术依然是关系型数据库)
4.    NoSql 数据库分类

5.    Mongodb 的基础概念
目前在 NoSql 数据库中 Mongodb 排名第一,因此学习 Mongodb 非常有必要
Mongdb:是一个数据库,高性能、无模式、文档型 NoSQL 数据库,是目前 NoSQL 中最热门的数据库,开源产品,是 NoSQL 中功能最丰富且最像关系型数据库的 NoSQL 数据库
特性:
5.1 面向集合文档的存储:适合存储 Bson(json 的扩展)形式的数据
5.2 格式自由,数据格式不固定,生产环境下修改结构都不影响程序的运行
5.3 强大的查询 API,面向对象的查询语言,基本覆盖 sql 语言的所有功能
5.4 完整的索引支持,支持查询计划
5.5 支持复制(主从)和自动故障转移(高可用单点故障)
5.6 支持二进制数据及大型对象(文件)的搞笑存储
5.7 使用分片集群提升系统扩展性
5.8 使用内存映射存储引擎,把对硬盘的物理 IO 操作转换为内存操作提高读写性能但比较吃内存
6.    Mongodb 基本概念图解

7.    MongoDB 概念与 RDMS 概念对比

8.     如何决定一个业务场景是否需要使用 MongoDB
并没有某一业务场景必须使用 Mongodb 才能解决,能用 Mongodb 解决的用关系型数据库都能解决,但是当选择使用 Mongodb 可以让问题或业务场景解决的成本更低的时候就可以考虑使用 Mongodb,问题的解决成本包括(学习成本,开发成本,运维成本等)

以上如果第一个 yes 被否定就不建议使用 mongodb,如果上述第一个必须 yes 的满足需求其余的选项中满足任意一个或多个都可以使用 mongodb,满足的项越多越能体现 mongodb 的优势。
9.    MongoDB 使用场景
Mongodb 的应用已经 *** 到各个计算机软件领域,如游戏、物流、电商、内容管理、社交网络、物联网、视频直播等
9.1 游戏场景:使用 Mongodb 存储游戏用户信息,用户的装备,积分等直接以内嵌文档的形式存储,方便查询更新
9.2 物流场景:使用 Mongodb 存储商品评论、订单信息,订单状态状态在运送过程中会不断更新,以 Mongodb 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来
9.3 社交场景:使用 Mongodb 存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现查找附近的人,服务场所等功能
9.4 物联网场景:使用 Mongodb 存储所有接入的只能设备的信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
9.5 视频直播:使用 Mongodb 存储用户信息,礼物信息等

10.     那些业务场景下不能使用 MongoDB
10.1 要求高度的事务性的系统:例如银行系统、财务系统、支付系统等,因为 Mongodb 对事务的支持完整性和严格性较弱
10.2 传统的商业智能应用:特定问题的数据分析,多数据实体关联(多表 join 操作)涉及到复杂的关联查询的报表系统,高度优化查询的系统
10.3 使用 sql 方便,数据结构相对固定以上情况不建议使用 Mongodb

感谢各位的阅读!关于“MongDB 有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计2343字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)