应用场景 | 学习笔记

简介: 快速学习 应用场景

开发者学堂课程【MongoDB精讲课程(上):应用场景学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/726/detail/12948


应用场景


内容介绍:

一、业务应用场景

 

一、业务应用场景

传统的关系型数据库(MySQL) ,在数据操作的“三高“需求以及应对 Web2.0的网站需求面前,显得力不从心。

1.解释:”三高”需求

High performance 对数据库高并发读写的需求。对于高并发的理解,举例:双十一的淘宝,上亿的用户在淘宝上同时下单,这对于数据库是一个很大压力,传统的关系型 Mysql 的数据库,是不能完成相关的要求或是相应对的代价比较高。此时就要使用 Nosql 的 数据库,MongoDB 就是一个很典型的数据库。

Huge Storage -对海量数据的高效率存储和访问的需求。这是普通 MySQL 很难达到的,海量就是很多的数据,比如朋友圈,微信数据,每天有上亿的用户在使用,所产生的数据也是 TB 或是 PB 级别的。若此时使用 MySQL 存储数据就难以高效的去存储,这就要使用 NoSQL 的数据库,比如 MongoDB

High Salbiiry && High Avliability 对数据库的高可扩展性和高可用性的需求。比如传统的关系型数据库 MySQL,在使用的之前所用的表和表、列和列的关系都是固定的,这就难以扩展,或是扩展的代价很高。而 MongoDB 是松散型的数据库,不需要在一开始的时候把每一列的关系都确定好,所以当它不确定格式的时候,它的扩展性非常好。高可用的理解会在后续的讲述的集群和安全性的时候中会详细讲解 MongoDB 的好处。

2.MongoDB 可应对“三高"需求。

具体的应用场景如下:

1)社交场景,例如微信朋友圈,地理位置,这些都是海量的数据,这就是三高的范围内。使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人地点等功能。

2)游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储。方便查询、高效率存储和访问。游戏对延迟有很高的要求,在砍怪、升级的过程中会产生大量经验值的情况,如果采用 MySQL 存储数据,它的时效性不会很高。所以 MongoDB 它可以轻松实现高效率的存储。

3)物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌入数组形式来存储,一次查询就能将订单所有的变更读收出来。它就是一个大数据,比如美团上的位置实时是往上报的,用户可以详细看到外卖员的距离,实时更新数据会产生大量数据,此时用 MongoDB 来存储会更好,而且它本身还支持内嵌的形式。相比较而言会比 Mysql 这种关联性数据库更加的简便的去查询所关联的数据。

4) 物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇根的日志信息,并对这些信息进行多维度的分析。它所接入的设备都是数以亿级,它产生的数据也是非常的大,汇报的日志都是实时的,它的数据量也是很大的。

5)视频直播,使用 MongoDB 存储用户信息,点赞互动信息等。

3.这些应用场置中,数据操作方面的共同特点

1)数据量大

2)写入操作频繁,(读写都很频繁)比如游戏场景,物流场景都是写入很频繁的操作

3)价值较低的数据,对事务性的要求不高,可以看到上面的讲述没有太多金钱的涉及。同时它也存在缺点,若没有缺点的情况下,Mysql 早就被取代了。缺点在于对于事务性的要求不高,举例像银行转账,这种强事务就不太适合MongoDB,这时候就还是使用关系型的数据库比较合适。

对于这样的数据,更适合使用 MongoDB 来实现数据的存储

4.什么时候选择 MongoDB

1)应用不需要事务以及复杂 join 支持

新应用,需求会变,数据模型无法确定,想快速迭代开发。它的数据模型是松散的,不需要一开始的时候就确定数据模型它的扩展性很高。

应用需要2000-3000以上的读写 QPS(更高也可以)

应用需要 TB 甚至 PB 级别数据存储,传统型数据库使用一个是比较麻烦,使用 MySQL 的维护成本比较高,这就要选择 MongoDB 来取代它。

2)应用发展迅速,选能快速水平扩展

3)应用要求存储的数据不丢失

4)应用要求99.999%高可用

5)应用需要大量的地理位置查询、文本查询

6.思考:如果用 MySQL

答:相对 MySQL 来说,它的可以以更低的成本解决问题(包括学习、开发、运维等成本)。以上的需求,用 Mysql都是可以解决的。但相对来说 MySQL 的成本很高;在处理一些大数据的时候,要优化做的非常好才适合实现,但MongoDB 的先天条件就决定了它会在高并发、数据量大的情况下效率更高,所以就可以相比较选择 MongoDB 来去实现。

相关文章
|
域名解析 缓存 网络协议
当使用IP地址可以访问应用系统,但通过域名无法访问时
【1月更文挑战第14天】【1月更文挑战第68篇】当使用IP地址可以访问应用系统,但通过域名无法访问时
350 6
|
存储 传感器 编解码
turtlebot3 在gazebo仿真下 通过 gmapping slam 建立二维平面地图——全过程
turtlebot3 在gazebo仿真下 通过 gmapping slam 建立二维平面地图——全过程
turtlebot3 在gazebo仿真下 通过 gmapping slam 建立二维平面地图——全过程
基于edge的wetab插件使用
基于edge的wetab插件使用
290 0
|
11月前
|
数据采集 运维 数据可视化
阿里云多模态数据信息提取解决方案深度评测与优化建议
本文基于多模态数据信息提取方案的部署体验,深入剖析其在操作界面、部署文档、函数模板、官方示例及实用性与移植性等方面的表现,并提出针对性改进建议。优化建议涵盖模型性能对比、实时校验、故障排查手册、代码注释扩充、行业专属示例集等,旨在提升方案的易用性、功能性和通用性,助力企业在复杂数据处理中高效挖掘价值信息,推动数字化转型。
282 9
|
12月前
|
人工智能 运维 Devops
CAP:Serverless + AI 让应用开发更简单
对于众多开发者而言,Serverless 架构的核心优势在于其能够无缝集成多种云产品与组件,从而使得开发者可以更加专注于核心业务逻辑和创新。此外,Serverless 架构还提供了按量付费的灵活计费模式,进一步降低了资源成本。使用云应用开发平台 CAP,在 AI 领域,企业就可以专注于模型训练、算法优化等关键任务,让 AI 应用的开发、部署以及全生命周期的管理更加简单。可以预见 Serverless 技术将催生一系列创新且有趣的应用,而这些应用将不断拓展 AI 技术的边界。
|
机器学习/深度学习 人工智能 算法
DeepMind机器人打乒乓球,正手、反手溜到飞起,全胜人类初学者
【8月更文挑战第30天】DeepMind团队近日在机器人乒乓球领域取得了重大突破,其研发的机器人在与人类初学者的对战中表现出色,展现了惊人的技术水平和适应能力。这项成果不仅彰显了人工智能在体育竞技中的巨大潜力,还引发了关于AI与人类技能关系的广泛讨论。尽管存在一些挑战,如学习能力和成本问题,但该技术在训练、娱乐等方面的应用前景值得期待。论文详情见【https://arxiv.org/pdf/2408.03906】。
316 5
|
安全 Linux
在Linux中,suid、sgid和sticky bit这几个术语意思?
在Linux中,suid、sgid和sticky bit这几个术语意思?
|
监控 数据可视化 调度
ERP系统中的现金流管理与预测
【7月更文挑战第25天】 ERP系统中的现金流管理与预测
827 3
|
存储 安全 网络协议
17.AD域和LDAP协议
17.AD域和LDAP协议
|
C++
【SPSS】单样本T检验分析详细操作教程(附案例实战)
【SPSS】单样本T检验分析详细操作教程(附案例实战)
3362 0