千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:西安千锋IT培训  >  技术干货  >  一个大型的SNS网站,是否适合数据库全部用mongodb来做,为什么?

一个大型的SNS网站,是否适合数据库全部用mongodb来做,为什么?

来源:千锋教育
发布人:xqq
时间: 2023-10-20 18:04:08

一、一个大型的SNS网站,是否适合数据库全部用mongodb来做,为什么

一个大型的SNS网站,数据库不适合全部用mongodb来做,原因如下。

1、数据一致性问题

MongoDB虽然支持事务,但在某些特定场景下,如对多文档的复杂操作仍然存在局限性。相较于传统的关系型数据库,在数据一致性方面还存在一定的问题。

2、存储空间占用较大

MongoDB在存储文档的时候会将字段名称存储在每个文档中,这会导致存储空间占用较大。在大型SNS网站存储海量数据时,这可能会成为一个问题。

3、不支持 JOIN 操作

MongoDB不支持关系型数据库中类似于JOIN操作的高级查询功能,这意味着如果需要多表查询,开发人员需要自己手动处理,增加系统的复杂度和耗费更多的时间和精力。

4、缺乏丰富的管理工具和资源

相较于传统的关系型数据库,MongoDB缺乏成熟的管理工具和丰富的资源。在大规模的SNS网站中,这可能会导致管理和维护数据库变得更加困难和耗时。

5、适用场景有限

MongoDB适合存储非常规或更加复杂的数据类型,例如嵌套文档和数组等。然而,对于结构化类型的数据(如用户登录、订单管理等)来说,使用一种传统的关系型数据库可能会更加适合。

二、MongoDB概述

1、简介

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

简而言之,MongoDB是文档型的NoSQL数据库,数据以文档(对应关系型数据库的记录)的形式在MongoDB中保存,文档实际上就是一个个JSON字符串,使用JSON的好处是非常直观,通过一系列的Key-Value键值对来表示数据,符合我们的阅读习惯。

2、特点

高性能

MongoDB提供高性能的数据持久性。对嵌入式数据模型的支持减少了数据库系统上的IO活动。索引支持更快的查询,并且包含嵌入式文档和数组的键。

文本索引解决搜索的需求;TTL索引解决历史数据自动过期的需求;地理位置索引可用于构建各种 O2O 应用。

高可用性

MongoDB的复制工具称为副本集(reolica set),它包含提供自动故障转移和数据冗余。

高可用性

MongoDB提供了水平可扩展性作为其核心功能的一部分。分片将数据分布在一组集群的机器上。(海量数据存储、服务能力水平扩展)

从3.4起,MongoDB支持基于片键创建数据区域,在一个平衡的集群中,MongoDB将一个区域所覆盖的读写只定向到该区域内的那些片。

丰富的查询支持

MongoDB支持丰富的查询语言,支持读写(CRUD)操作、比如数据聚合、文本搜索、地理空间查询等。

其他特点

如动态模式、灵活的文档模型。

3、应用场景

游戏场景:使用MongoDB存储游戏用户信息、装备、积分等,直接以内嵌文档的形式存储,方便查询、更新。物流场景:使用MongoDB存储订单信息、订单状态、物流信息,订单状态在运送过程中飞速迭代、以MongoDB内嵌数组的形式来存储,一次查询就能将订单所有的变更查出来,牛逼plus。社交场景:使用MongoDB存储用户信息,朋友圈信息,通过地理位置索引实现附近的人、定位功能。物联网场景:使用MongoDB存储设备信息、设备汇报的日志信息、并对这些信息进行多维度分析。视频直播:使用MongoDB存储用户信息、点赞互动信息。

4、语言支持

MongoDB有官方的驱动如下:

CC++C# / .NETErlangHaskellJavaJavaScriptLispnode.JSPerlPHPPythonRubyScalaGo

5、应用案例

Craiglist,上使用MongoDB的存档数十亿条记录。FourSquare,基于位置的社交网站,在Amazon EC2的服务器上使用MongoDB分享数据。Shutterfly,以互联网为基础的社会和个人出版服务,使用MongoDB的各种持久性数据存储的要求。bit.ly, 一个基于Web的网址缩短服务,使用MongoDB的存储自己的数据。spike.com,一个MTV网络的联营公司, spike.com使用MongoDB的。Intuit公司,一个为小企业和个人的软件和服务提供商,为小型企业使用MongoDB的跟踪用户的数据。sourceforge.net,资源网站查找,创建和发布开源软件免费,使用MongoDB的后端存储。etsy.com ,一个购买和出售手工制作物品网站,使用MongoDB。纽约时报,名列前茅的在线新闻门户网站之一,使用MongoDB。CERN,知名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用MongoDB。

延伸阅读1:什么是SNS

SNS俗称社会性网络服务,是一种新兴的网络应用,是指人和人之间通过朋友、理想、交易、兴趣、爱好等一定关系建立起来的社交化网络结构,它是基于现实六度关系理论发展起来的社会网络关系系统网络形态。具有代表性的如微博、人人网、开心网等,它们拥有大量的用户群体,对很多人特别是年轻群体有着深刻的影响,由于高昂的人气,而蕴含着巨大商机,引发更多的企业以SNS营销创造更大价值。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

在mysql中, 为什么只有右模糊才走索引?

2023-10-20

SQL语言中的ALTER和UPDATE,DROP和DELETE都有什么区别?

2023-10-20

一个大型的SNS网站,是否适合数据库全部用mongodb来做,为什么?

2023-10-20

最新文章NEW

为什么声明性语言往往适合于并行执行,命令代码很难在多个内核和多个机器之间并行化?

2023-10-20

MySQL多表关联查询效率高点还是多次单表查询效率高,为什么?

2023-10-20

jmeter性能测试步骤?

2023-10-20

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>