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

news2024/11/26 17:44:57

2a4456916f7195a9bdd98881dc040ce8.png

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共820人左右 1 + 2 + 3)

提到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是一个独行侠,无可替代。

0c43b0e5ae14caa25c36bdce36f6cd80.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/587283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT时代情感分析还存在吗?一份真实调查

深度学习自然语言处理 原创作者:qazw 引言 最近几年,GPT-3、PaLM和GPT-4等LLM刷爆了各种NLP任务,特别是在zero-shot和few-shot方面表现出它们强大的性能。因此,情感分析(SA)领域也必然少不了LLM的影子,但是哪种LLM适用…

结束了

阅读本文大概需要 1.29 分钟。 帅张读书会,结束了。 这里也简单记录一下这件事,毕竟是自己做了两年的产品。 经过两年的时间,自 2021 年 5 月 27 日至 2023 年 5 月 27 日,帅张读书会这个项目持续了两期,第二期现在结束…

配置wxworks6.9系统移植到xilinx zynq ps端

一,创建bootrom 打开打开Workbench,目录在C:\WindRiver\workbench-3.3\wrwb\platform\x86-win32\eclipse\eclipse-x86-win32 在菜单栏,点击 File->New->Project。The New Project Wizard opens。 在 VxWorks 6.x中,选择 Vx…

音乐驱动虚拟人——娱乐场景下虚拟人的AI驱动实践

元宇宙时代的娱乐场景下,通过高精度的AI驱动模型还原真人的歌舞表演,有着更低成本、更多创造性、精彩度、实时互动性的综合优势,是虚拟数字人驱动的最终形态。LiveVideoStackCon 2022北京站邀请到腾讯音乐天琴实验室计算机视觉负责人——董治…

动画图解程序?这个可视化运行环境太方便了

入门教程、案例源码、学习资料、读者群 请访问: python666.cn 大家好,欢迎来到 Crossin的编程教室 ! 了解代码的执行过程是编程的基本要求。 一个熟练的编程老手只需要用肉眼看着代码,就能对其运行的过程有所了解。然而对于刚接触…

权限维持-SSP-DLL 加载

前言 继续学习中,今天是权限维持的东西,大家永远不要忘记初心,要一起奋斗哦! 注:单机环境和域环境都可以使用 复现 一.进程注入lsass.exe 使用mimikatz将伪造的SSP注入内存,这样用户在注销重新登录的时候就…

机器学习库Scikit-learn

本文目录 3.1 背景知识3.2 Scikit-learn概述3.3 Scikit-learn主要用法 3.3.1 基本建模流程3.3.2 数据预处理3.3.3 监督学习算法3.3.4 无监督学习算法3.3.5 评价指标3.3.6 交叉验证及超参数调优3.4 Scikit-learn总结参考文献 Scikit-learn是基于NumPy、SciPy和Matplotlib的开源P…

全国流体力学盛会召开,飞桨AI4S携最新科研进展亮相西湖大学

‍‍‍‍ 5月20-21日,第四届全国智能流体力学研讨会暨第二届智能流体力学产业联合体大会在西湖大学召开。此次会议由中国力学学会、中国空气动力学会、《水动力学研究与进展》编委会、西湖大学、浙江大学、上海交通大学、中国船舶集团第七〇八研究所主办&#xff1b…

nsis制作windows安装包-修改安装目录读写权限

目录 1. 背景2. 使用AccessControl修改权限2.1 AccessControl下载安装2.2 修改脚本 1. 背景 使用nsis制作的windows安装包在安装时,将安装目录设置到非系统盘里,安装完成后一般不会出现读写权限的异常问题。但是,安装时选择在系统盘里安装&a…

envi随机森林分类5.3版本

在App Store中搜索随进森林工具,进行下载并重启envi软件 含有三个模块 Train Random Forest Model 1. Input Raster:输入影像。选择图像时不能进行空间、光谱裁剪或掩膜(ENVI 5.5及以上版本已经禁止显示这些按钮) 2. Random Sam…

无需租云服务器,Linux本地搭建web服务,并内网穿透发布公网访问

文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道,指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 转载自cpolar文章:Linux CentOS本地搭建…

c++ 11标准模板(STL) std::map(八)

定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…

香港财经学院工商管理硕士(MBA)含金量

近年来&#xff0c;随着中国经济的崛起&#xff0c;越来越多的学生和从业人员开始关注MBA教育。在香港地区&#xff0c;香港财经学院的MBA项目备受瞩目&#xff0c;被誉为是该地区最具含金量的MBA项目之一。首先&#xff0c;香港财经学院作为一家优秀的商学院&#xff0c;在教学…

【C++系列P1】带上这篇基础小宝典,进发C++!(持续更新ing~)

​​​​​​​ 前言 大家好吖&#xff0c;欢迎来到 YY 滴 C系列 &#xff0c;热烈欢迎&#xff01;(持续更新ing~&#xff09;本章主要内容面向刚刚学完C语言&#xff0c;准备或正在接触C的老铁。而往往C奇多的小特性和知识点让铁铁们头晕晕脑涨涨&#xff0c;因而本章收纳了…

为什么北欧的顶级程序员数量远超中国?(续)

之前写过一篇文章《为什么北欧的顶级程序员数量远超中国&#xff1f;》&#xff0c;讲了北欧大神们开发的Linux、MySQL、Chrome V8、MineCraft、QT等优秀软件&#xff0c;分析了北欧有如此多顶级程序员的主要原因。 有位读者Ven 源 留言说&#xff0c;除了文章中教育优势&…

碳纤维单丝外径测试中的纳米分辨率激光衍射法解决方案

摘要&#xff1a;碳纤维单丝热膨胀系数是碳纤维复合材料设计、生产与可靠性和寿命评估的重要参数&#xff0c;本文针对单丝径向高温热膨胀系数测试这一难题提出了相应的解决方案。解决方案的核心内容是基于激光衍射法和高温辐射加热&#xff0c;并采用衍射轮廓拟合技术以及相应…

Dropout层的个人理解和具体使用

Dropout层的作用 dropout 能够避免过拟合&#xff0c;我们往往会在全连接层这类参数比较多的层中使用dropout&#xff1b;在训练包含dropout层的神经网络中&#xff0c;每个批次的训练数据都是随机选择&#xff0c;实质是训练了多个子神经网络&#xff0c;因为在不同的子网络中…

Linux常用命令——gzip命令

在线Linux命令查询工具 gzip 用来压缩文件 补充说明 gzip命令用来压缩文件。gzip是个使用广泛的压缩程序&#xff0c;文件经它压缩过后&#xff0c;其名称后面会多处“.gz”扩展名。 gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令&#xff0c;既方便又好…

Python过滤信息,如省位中包含广东、安徽、浙江这3个省份的话,就pass,怎么破?...

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 但令心似金钿坚&#xff0c;天上人间会相见。 大家好&#xff0c;我是皮皮。 一、前言 前几天遇到了一个小问题&#xff0c;在做资料的时候&#xff0c…

7位专家齐聚openGauss Developer Day 2023云和恩墨专题论坛,共论数据库自主创新改造与技术发展...

5月26日&#xff0c;云和恩墨在「openGauss Developer Day 2023」主论坛上大放异彩&#xff08;←点此回顾主论坛精彩时刻&#xff09;&#xff0c;更是通过举办一场数据库技术创新与应用实践分论坛&#xff0c;力邀7位重量级嘉宾就数据库创新能力构建、行业应用实践和迁移替代…