发布信息

全方位对比 MongoDB 和 版 2023 Postgres (中美军力全方位对比)

     2024-10-22 20:17:22     385

本文目录导航:

全方位对比 Postgres 和 MongoDB (2023 版)

对比Postgres和MongoDB,了解哪款数据库更适宜你的需求。

Postgres和MongoDB均在世界数据库市场中占据关键位置。

依据2023年Stack Overflow调研,Postgres已成为最受欢迎的数据库之一。

而MongoDB则在2017年至2020年间延续蝉联最盼望经常使用的数据库头衔。

两者均排在世界数据库排名前五,正逐渐冲击Oracle、MySQL及Microsoft SQL Server的市场份额。

MongoDB最后被视为与Postgres等SQL数据库相统一的NoSQL数据库,但近年来两者正逐渐趋同。

The Guardian曾颁布长文讨论将MongoDB迁徙至Postgres的或许性,虽然时过境迁,但迁徙数据库的痛苦环节并未扭转。

Bytebase与多个数据库包含Google Cloud SQL严密协作,然后者更是由Bytebase开创人所创立。

在对比Postgres和MongoDB时,咱们将从以下几个维度启动评价:容许证、数据模型、JSON支持、性能、牢靠性、伸缩性、易用性、可运维性、生态系统以及两者之间的选用。

Postgres和MongoDB均准许企业级经常使用,Postgres支持JSON列,使其具有与MongoDB相似的性能,可以经常使用JSONB格局处置JSON。

两者在处置JSON方面均体现杰出,MongoDB经常使用自定义BSON格局,而Postgres经常使用JSONB格局。

无关在Postgres中经常使用BSON或JSONB之间的讨论,可参考相关资源。

性能方面,MongoDB在触及多个实体的操作时理论更优,由于其数据去规范化,无需启动复杂的表间衔接。

而Postgres则长于处置复杂查问,得益于其弱小的SQL和先进的查问提升器。

牢靠性方面,MongoDB早期因不支持ACID事务而遭到质疑,但经过收买WiredTiger并经常使用其存储引擎,当初的MongoDB与Postgres一样稳固牢靠。

MongoDB经过正本集提供内置的智能缺点转移性能,而Postgres则须要第三方处置打算,如pg_auto_failover。

伸缩性方面,MongoDB支持横向裁减,而Postgres理论驳回纵向裁减。

MongoDB是一个散布式数据库,支持智能分片,而Postgres的分片处置打算理论会在纵向裁减之后思考经常使用。

易用性方面,MongoDB驳回无预设形式的架构,易于上手,官方驱动程序使其与MongoDB数据库交互变得繁难直观。

Postgres则要求对schema启动解放,虽然在相关型数据库中相对严厉。
中美军力全方位对比
Stack Overflow调研显示,虽然Postgres是受访者中最受欢迎的数据库,但在新手用户中,MongoDB更受欢迎。

处置复杂查问时,MongoDB的MQL性能不如Postgres的SQL弱小。

可运维性方面,运转多节点MongoDB比运转多节点Postgres更为简便,由于分片和缺点转移由MongoDB处置。

在单节点部署下,MongoDB的散布式个性或许成为累赘。

生态系统方面,Postgres领有可裁减架构并由社区保养,近年来生态系统蓬勃开展。

MongoDB采取商业化战略,收买了低劣的处置打算,以确保成为其产品线无法或缺的局部。

Postgres是一个通用数据库,驳回相关模型,提供片面的SQL性能和裁减架构,由激情社区驱动。

MongoDB是一个片面的数据库处置打算,遍及文档模型,具有伸缩性和高可用性,提供完整的开发者体验,由营利性商业实体推进。

选用Postgres或MongoDB取决于特定需求。

在某些畛域中,一个数据库显著优于另一个,但在大少数运行程序用例中,两者都体现出弱小才干。

组织内同时经常使用Postgres和MongoDB也很经常出现。

关于Postgres和MongoDB的生命周期治理,Bytebase是一个值得思考的工具。

欲深化了解Bytebase,请访问其官方并收费注册云账号,立刻体验。

Mongodb 数据库的装置 和 可视化工具 `Robo 3T`的经常使用

一、下载地址,参考官方二、装置 Mongodb 步骤Mongodb 是非相关型数据库2.1、解压之后的目录如下2.2、在 mongodb 目录下,减少以下三个文件夹data、etc、logs,完整目录如下其中作用如下2.3、新建性能文件 ,内容如下(留意:dbpath和logpath。

这个是依据你的文件夹门路写的)寄存此目录下三、运转 Mongodb 服务步骤3.1、成功全局经常使用 mongodb 命令,须要性能path环境3.2、门路:控制面板\系统和安保\系统3.3、减少mongodb 服务3.4、启动服务产生失误:服务名有效处置方法: 治理员形式关上 cmd 窗口,输入以下命令成功3.5、阅读器输入网址,如下显示即启动成功3.6、启动 mongodb ,操作数据库, net stop mongodb 分开命令四、可视化工具Robo 3T,参考官方下载地址4.1、下载后,关上运行程序,新建衔接 (File --> connect 或许快捷键 CTRL + N)4.2、点击创立衔接,修正名字 localhost , 经常使用自动地址 localhost 和 端口 即可,点击save保留。

如下图所示:4.3、衔接成功之后,即可减少数据库、数据表等! 写给自己的随笔,有疑问欢迎指出指路掘金哈哈

删除MongoDB反双数据的4种方法

前言

妇孺皆知,咱们经常会用MongoDB存储少量数据。

但是,有时刻咱们遗记在建设汇合的时刻给某些字段设置unique属性,造成数据库中会存在少量重复的数据,这时刻如何删除这些数据就成了一个令人脑壳疼的疑问。

在数据量较小的状况下,可以间接写一个python脚本,经过导出已有数据并拔出到已建设unique索引的汇合中处置疑问。

但是,but,假设数据量较大的话,经常使用脚原本处置要消耗十分少量的期间,这种时刻就须要想想其余方法了

几种方法方法一:经常使用python脚本处置frompymongoimportMongoClient#关上汇合client=MongoClient(address,port)db=_namecollection=_namepatents=[]#存储已遍历过的unique字段count=():ifitem[key_is_unique]notinpatents:#判别以后文档能否在之前曾经遍历过(item[key_is_unique])#该文档设置成已遍历_one(item)#删除重复文档方法二:在mongo命令行经常使用命令间接处置([{$group:{_id:{content:$content,endTime:$endTime,startTime:$startTime},count:{$sum:1},dups:{$addToSet:$_id}}},{$match:{count:{$gt:1}}}])(function(it){();({_id:{$}});});

对命令的一些说明

经常使用aggregate聚合查问反双数据

\$group中是查问条件,依据content、endTime、startTime字段来聚合相反的数据;

\$count用来统计重复产生的次数,\$match来过滤没有重复的数据;

\$addToSet将聚合的数据id放入到dups数组中繁难前面经常使用;

查问结果经常使用forEach启动迭代id来删除数据

shift()作用是剔除队列中第一条id,防止删掉一切的数据;

方法三:间接在原汇合建设索引,在让MongoDB在建设索引的环节中删除反双数据

({your_unique_key:1},{unique:true,dropDups:true})

上述命令的dropDups参数通知MongoDB,假设遇上了unique抵触的数据,就间接删除抵触的数据

方法四:经过MongoDB的原生支持,先导出数据为bson文件,再将bson文件数据导入到已建设索引的新汇合中mongodump-ddb_name-ccollection_name-o/_collection_({要建设的索引},{unique:true,dropDups:true})mongorestore-ddb_name-cnew_collection_name/tmp/db_name/collection_结语

上述提供了四种删除MongoDB反双数据的方法,每种方法各有自己的优缺陷,大家可以依据自己的须要启动选用。

相关内容 查看全部