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

首页 / 常见问题 / 低代码开发 / 一个大型的SNS网站,是否适合数据库全部用mongodb来做,为什么
作者:低代码开发工具 发布时间:10-25 13:58 浏览量:4801
logo
织信企业级低代码开发平台
提供表单、流程、仪表盘、API等功能,非IT用户可通过设计表单来收集数据,设计流程来进行业务协作,使用仪表盘来进行数据分析与展示,IT用户可通过API集成第三方系统平台数据。
免费试用

一个大型的SNS网站,数据库不适合全部用mongodb来做,原因:1、数据一致性问题;2、存储空间占用较大;3、不支持 JOIN 操作等。数据一致性问题是指MongoDB虽然支持事务,但在某些特定场景下,如对多文档的复杂操作仍然存在局限性,在数据一致性方面还存在一定的问题。

一、一个大型的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有官方的驱动如下:

  • C
  • C++
  • C# / .NET
  • Erlang
  • Haskell
  • Java
  • JavaScript
  • Lisp
  • node.JS
  • Perl
  • PHP
  • Python
  • Ruby
  • Scala
  • Go

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营销创造更大价值。

最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。

最近更新

什么是外向潜在客户开发
10-30 10:47
产品开发过程的阶段有哪些
10-30 10:47
系统开发图片太大如何处理
10-30 10:47
什么是软件开发团队管理
10-30 10:47
呼叫系统开发实施做什么
10-30 10:47
开发选址如何管理团队
10-30 10:47
敏捷软件开发如何运作?
10-30 10:47
门禁系统开发厂家有哪些
10-30 10:47
销售系统开发平台有哪些
10-30 10:47

立即开启你的数字化管理

用心为每一位用户提供专业的数字化解决方案及业务咨询

  • 深圳市基石协作科技有限公司
  • 地址:深圳市南山区科技中一路大族激光科技中心909室
  • 座机:400-185-5850
  • 手机:137-1379-6908
  • 邮箱:sales@cornerstone365.cn
  • 微信公众号二维码

© copyright 2019-2024. 织信INFORMAT 深圳市基石协作科技有限公司 版权所有 | 粤ICP备15078182号

前往Gitee仓库
微信公众号二维码
咨询织信数字化顾问获取最新资料
数字化咨询热线
400-185-5850
申请预约演示
立即与行业专家交流