首页 > 数据库 >Mongodb 为什么提起处理JSON 就是MOGNODB 的,因为我没得选

Mongodb 为什么提起处理JSON 就是MOGNODB 的,因为我没得选

时间:2023-06-19 16:35:54浏览次数:50  
标签:Mongodb 数据库 MongoDB JSON 没得选 mongodb 日志 数据


Mongodb  为什么提起处理JSON 就是MOGNODB 的,因为我没得选_java


提到JSON 的数据处理,大部分人想到的一定是MONGODB ,如果不是可以自己好好的反思一下,自己的数据库餐盘是不是缺少MOGNODB 这道硬菜,最近也有人问我一个问题,关于使用mongodb的原因是什么,我回答的比较简单,但是我更原因用这样的方式来回答这个问题。

提到MOGNODB 的特长,必须提到JSON ,在数据库处理的格式中,我们大多习惯关系型的数据的表达方式,而在除了数据关系型的二维表格的数据表达的方式以外,更加简便的流行的数据格式的表达是 JSON ,JSON,即JavaScript对象表示法,是一种易于人类阅读的数据交换格式,尽管JSON是基于JavaScript编程语言标准的一个子集,但它完全独立于语言。

JSON对象是关联容器,其中字符串键映射到一个值(可以是数字、字符串、布尔值、数组、空值——null,甚至是另一个对象)。几乎所有编程语言都有这种抽象数据结构的实现——JavaScript中的对象、Python中的字典、Java和C#中的哈希表、C++中的关联数组等。JSON对象易于人类理解,也便于机器解析和生成。所以在很多的情况下,程序人员更习惯于JSON 来进行数据的传输和数据的处理。基于数据库格式的发展,JSON数据的已经应用到,更多的领域如APIs 配置文件  日志信息 数据库信息存储。基于这样的应用的广泛性,我们才有了使用MOGNODB 的初始的物质基础。

这是其一,其二是传统数据库的无能,这个词可能用的不是太好,但却是实际,的确无论是ORACLE 还是 MYSQL 到POSTGRESQL 在JSON 的处理上,都各有千秋,但只要到实际的工作中,我们大多不敢去用这些传统的数据库来处理JSON ,或者说他们这些数据库,无法给我们信任感。

1  量,量是一个MOGNODB 的特点,一个表可能有200万,5000万,1个亿 ,这些都是传统数据库可以处理的内容,但是如果我告诉你10个亿呢,100个亿呢,此时传统数据库基本上就没有了声音,留下的只有MONGODB 还可以对你这些要求进行支持。基于JSON 数据的特点,要不很小,要不很大,尤其在一些第三方的信息传输或日志的记录中,MOGNODB 存储的数据量非常大,可能每秒就是几万条数据的进入,而且是持续性的。很容易一个表就能达到成千上万的小CASE。

2  存,在数据进来后如何能存的下这些数据是另一个能力,数据被压缩的很小,这是mongodb的另一个特性,基于这个特性mongodb 通过一下的以下方式来完成这个工作:

使用BSON格式:MongoDB存储数据时采用了BSON(Binary JSON)格式,这是一种类似JSON的二进制序列化数据表示。BSON格式在保留JSON可读性的基础上,提供了更紧凑的二进制表示,有助于提高存储效率。

支持多种压缩算法:MongoDB支持多种数据压缩算法,如Snappy、zlib等。这些压缩算法能够有效降低磁盘空间占用,提高存储的压缩比。

索引压缩:MongoDB还对索引进行了压缩处理,以减少索引所占用的磁盘空间。通过压缩索引,可以提高查询效率,并节省存储空间。

分片技术:MongoDB使用分片技术将数据分布在多个服务器上。这不仅有助于水平扩展,还可以优化存储空间的利用,从而提高整体的压缩比

这些能力看似一般,但是这些能力的组合让其他的数据库基本没有了声音,因为他的确是实实在在的让你看到了结果,如同大众汽车的反向虚标,百公里加速告诉你8.7秒,但你可以跑到7秒,与一些国产车型形成了鲜明的对比。---- 不说瞎话。

3  快,这单又是MONGODB的一个特点,在传统数据库的慢查询都在1秒进行标定的时候, MONGODB 的慢查询基本在500ms,也就是说mongodb 从未把自己的数据处理能力和 传统的那些数据库进行对标,而是将自己的性能,标定在   传统数据库 和  REDIS 缓存型数据库之间的一个标定人设。所以一般我们发现 MONGODB 的数据处理速度在 500毫秒以外的情况下,优化就开始了。

4  多元化的发展,这点mongodb 还是其他的数据库的启蒙老师,当其他的数据库还在努力的在传统和云之间进行兼容的时候,包含ORACLE 一直在 oracle 和 mysql 上云进行多方努力的时候,MONGODB 的Atlas 算是他们的祖师爷了。

MongoDB Atlas 是MongoDB官方提供的一种托管式数据库服务。它让你可以方便地在主流云服务商(如Amazon Web Services、Google Cloud Platform和Microsoft Azure)上部署、管理和扩展MongoDB数据库。

MongoDB Atlas 提供了以下特点和优点:

简化部署:使用MongoDB Atlas,你可以轻松地创建和部署MongoDB数据库。图形化界面使得配置和管理变得更加简单。

自动化运维:Atlas自动处理数据库日常运维任务,如备份、修复、监控和性能调优等,让开发者可以专注于应用程序本身而无需关心数据库管理细节。

安全性:Atlas提供多层次的数据库安全保障,包括网络隔离、加密、用户认证和访问控制等。这有助于确保你的数据得到充分保护。

弹性伸缩:根据实际需要,MongoDB Atlas可以轻松地进行水平和垂直扩展。你可以按需调整集群大小和性能以满足应用程序的要求。

全球分布:Atlas支持跨区域的数据分布,以便最佳地部署你的应用程序。这有助于降低延迟,提高数据冗余,并确保高可用性。

5  更可靠和更智能的 HA 高可用和读写分离

说到这点,其他的数据库产品,尤其是那些传统的数据,基本上在这里毯子,无论你是 XX cluster 还是 streaming , 这些都无法和mognodb 的高可用相提并论,首先mongodb的高可用是非常坚固的,并且恢复的方式方法很多,速度也很快,速度与mongodb无关,与你所使用的硬件有关,只要硬件够强健,那么必然mongodb 不能让你失望。

1  实现了数据的冗余

2  实现了数据节点故障的自动迁移,并且速度极快

3  读写分离的控制可在每条数据的写入中进行设定

4  数据的写入的安全性,丰俭由人,可以针对单条数据进行设定

5  可以实现shard storage 方式中的独立分离,并且不需要中间件的支持。

以上一点单独拿出来可能并不吸引人,但是这些都组合在一起,那个数据库敢出来叫板。(包含收费的数据库)

6  多种方式的JSON 数据处理和查询多使用在哪里

在一些项目的选型上,mongodb 已经成为主角,这些应用场景主要在

1   信息沟通和交流的数据留存,在两个应用进行数据端口访问时,势必要有数据的传递,而接口和接口之间的数据传递和记录,是有一定的变化和对于信息宽度的兼容性的,并且数据本身的格式就是JSON ,所以在这个情况下,我们只能选型 mongodb 其他的数据库基本上无法胜任这个功能,尤其在数据的灵活性方面,因为二维表格的限制,导致传统数据库这方面无法被选用。

2  日志类的数据,日志是应用系统最常用的一个部分,基本上每个应用都有日志部分,可能是应用的日志,也可能是系统的日志,但这些日志的格式大多是JSON ,并且这些日志经常被添加新的部分,如果传统数据库则会非常难以进行日志的处理和写入,尤其还有表结构的变化,MOGNODB 基于灵活的无结构,在这点上又再一次让传统数据库失效。

3  对于JSON 数据的特殊修改和高速查询的需求应用

这些要求主要是基于配置信息和一些超高并发的简单查询,尤其对于一些高并发简单查询的场合,又希望整体的应用结构设计简单的场景下,mongodb 可以在没有  redis 的辅助下进行高并发的查询操作,利用多只读节点分担读压力的特性。

4  特殊场景下的需求,这点在一些工业或化工领域居多,工业设备的数据反馈也大多是多种多样的,传统数据库无法进行这方面的响应和设计,还是基于无结构化的数据处理支撑,在这方面也只能使用 mongodb来进行业务的支持。

小结:基于以上提到的一些特点,在NOSQL的世界,MONGODB 属于无可替代和必须选择的存在,在国内搞信创的同时,我们可以发现,信创中传统关系型,分布式等数据库已经是内卷严重,而在NOSQL领域,基本上我们也没有看到有潜力的国产数据库的身影,即使有,也是兼容性的,基本上也没有那个企业敢使用不可靠的产品,所以在NOSQL领域mongodb是一个独行侠,无可替代。

Mongodb  为什么提起处理JSON 就是MOGNODB 的,因为我没得选_mongodb_02

标签:Mongodb,数据库,MongoDB,JSON,没得选,mongodb,日志,数据
From: https://blog.51cto.com/u_14150796/6515597

相关文章

  • Spring Batch:将数据从Web服务处理到MongoDB
    概观在这篇文章中,我们将介绍如何创建一个使用Web服务数据并将其插入MongoDB数据库的SpringBatch应用程序。要求阅读本文的开发人员必须熟悉SpringBatch(示例)和MongoDB。环境Mongo数据库部署在MLab中。请按照本快速入门中的步骤操作。批处理应用程序部署在Heroku PaaS中。详情  ......
  • MONGODB 磁盘与内存的数据格式是否一致
    最近MONGODB系统中的数据量逐渐变大,联系了开发准备开始进行数据的archive和 cleanup事宜。其中运维的同学问我,你存储的数据size和实际的数据size是不一样的,我回答那是mongodb自带的数据压缩功能。但后续的问题我模糊了,例如磁盘和内存的数据是否完全一致,压缩的比率是多少,......
  • Linux安装MongoDB 4.0.3
    Linux安装MongoDB4.0.3 1.准备CentOS下安装MongoDB官网提供windows、Linux、OSX系统环境下的安装包,这里主要是记录一下在Linux下的安装。首先到官网下载安装包。文中安装的是4.0.3版本的。官网地址:https://www.mongodb.com/下载地址:https://www.mongodb.com/try/download......
  • Docker中安装MongoDb
    1.Dockercompose文件version:'3.1'networks:mongo:external:falseservices:mongo-express:image:mongo-expressrestart:alwaysports:-"8081:8081"environment:ME_CONFIG_MONGODB_ENABLE_ADMIN:t......
  • vite+vue3项目中使用 lottie 动画,如何在 template 中直接使用本地 json 文件路径
    安装lottie-webyarnaddlottie-web封装 lottie组件<template><divref="animation":style="{width,height}"></div></template><script>import{defineComponent,ref,onMounted}from'vue'......
  • 关于ASP.NET.CORE中的Failed to read parameter "string param" from the request bod
    先上报错信息Microsoft.AspNetCore.Http.BadHttpRequestException:Failedtoreadparameter"stringparam"fromtherequestbodyasJSON.--->System.Text.Json.JsonException:'s'isaninvalidstartofavalue.Path:$|LineNumber:0|By......
  • MongoDB常用28条查询语句
    MongoDB常用28条查询语句1查询所有记录db.userInfo.find();相当于:select*fromuserInfo;默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据。注意:键入it命令不能带“;”,但是你可以设置每页显示数据的大小,用DBQuery.shellBatchSize=50;......
  • 关于前后端JSON解析差异问题与思考
    本文主要总结了作者在一次涉及流程表单的需求发布中遇到的问题及思考总结。 一、问题回顾在一次涉及流程表单的需求发布时,由于表单设计的改动,需要在历史工单中的一个json字段增加一个属性,效果示意如下:[{"key1":"value1"}]->[{"key1":"value1","key2":"value2"}]......
  • 关于前后端JSON解析差异问题与思考
    本文主要总结了作者在一次涉及流程表单的需求发布中遇到的问题及思考总结。 一、问题回顾在一次涉及流程表单的需求发布时,由于表单设计的改动,需要在历史工单中的一个json字段增加一个属性,效果示意如下:[{"key1":"value1"}]->[{"key1":"value1","key2":"value2"}]......
  • MongoDB4.0.0 远程连接及用户名密码认证登陆配置
    https://blog.csdn.net/qq_26896281/article/details/81206492参考文章:https://docs.mongodb.com/manual/tutorial/enable-authentication/https://docs.mongodb.com/manual/core/security-built-in-roles/https://blog.csdn.net/Keith003/article/details/80897085一、创建......