MongoDb与Postgres分析笔记

MongoDb与Postgres分析笔记

前言

postgres是我步入社会接触到的第一款关系型数据库,同时具有免费的客户端工具,使用方便(我还为它做过一个简单的客户端工具)。而MongoDB是我步入社会后接触到的第一款非关系型型数据库,”非关系“这个关键词让刚步入社会的我很难理解,由于我是理科生,一上来就对这个关系型和非关系型做了1和0的区分,无形之中就增加了理解难度,同时增加了我对它的畏惧感。
这里我奉上对于这个“非关系型”的个人理解:我认为非关系型数据库不是站在关系型数据库的对立面,非关系型数据库,不是说他不能存放关系型数据,而是它不仅仅可以存放非关系型数据。然后它的每条数据可以是不对齐的形式,不像关系型数据库,预先就需要定死表字段,这正是它的优势,不需要预先界定格式,更加灵活,可扩展性也更强。

简介

mongoDB简介

MongoDB是一个通用的、基于文档的分布式数据库,为现代应用程序开发人员和云时代构建。MongoDB将数据存储在类似json的文档中。我们相信这是考虑数据最自然的方式,比传统的行/列模型更有表现力和更强大。

postgres简介

postgrSQL是一个功能强大、开源的关系型数据库系统,经过30多年的积极开发,在可靠性、健壮性和性能方面赢得了很高的声誉。

功能与特点

mongo的功能与特点

1.MongoDB使用BSON数据格式存储记录,BSON基于JSON格式,选择JSON进行改造的原因主要是JSON的通用性及JSON的schemaless的特性。
2.MongoDB是SSPL的开源协议,由C++编写完成。
3.MongoDB支持水平扩展,它能自动完成分片工作,不需要人为介入,并且当各个分片中数据不平衡时,能够自动完成数据重分布,分片就是将数据存储到多台机器中,使用分片来使数据横向存储支持大规模的数据集部署和支持负载均衡提高吞吐量。
4.MongoDB不支持Collection的关联查询
5.事务关系支持薄弱。这也是所有NoSQL数据库共同的缺陷,不过NoSQL并不是为了事务关系而设计的,具体应用还是要跟需求去切合
6.MongoDB一方面在方便开发者的同时,另一方面对运维人员却提出了相当多的要求。业界并没有成熟的MongoDB运维经验,MongoDB中数据的存放格式也很随意,MongoDB的客户端工具不如传统数据库的客户端完善,等等问题都对运维人员的考验。
7.MongoDB采用预分配的形式,数据文件从64M开始,每增加一个文件大小翻倍,直到2G(64M, 128M, 256M, 512M, 1G, 2G, 2G, ...)
8.MongoDB会在数据删除后继续保持空记录的空间,它可以再次利用它,但不是将这个空间返还给系统。
9.mongoDB将索引和热数据保存在缓存中用以加速查询,但也导致了需要更多的内存。
9.MongoDB存储引擎目前有三种:mmapv1、wiretiger、mongorocks(还未了解过),mmapv1在原有基础上将锁粒度由库级锁改成了集合级别的锁,依旧在数据库级别分配文件,数据库中的所有集合和索引都混合存储在数据库文件中,所以磁盘空间无法及时自动回收的问题如故;WiredTiger 通过MVCC实现文档级别的并发控制,即文档级别锁。这就允许多个客户端请求同时更新一个集合内存的多个文档,再也不需要在排队等待库级别的写锁。这在提升数据库读写性能的同时,大大提高了系统的并发处理能力。
10.mongoDB不适合建立太多的索引,mongoDB占用内存在保存索引和热数据,如果索引太多会导致内存占用过多,索引太差又会影响查询性能,所以按照各个字段检索密集的业务还是需要斟酌一下采用它。

postgres的功能与特点

1.postgresql采用的是BSD协议,开源自由度高,方便用户进行自定义二次开发。
2.并行处理
(1)max_work_processes 当前数据库集群允许启动多少个工作进程。
(2)max_parallel_workers 查询时允许使用的最大的线程数量。
(3)max_parallel_workers_per_gather 顾名思义,每个查询支持的最大并行workers
(4)max_parallel_maintenance_workers 支持内建的过程使用并行的方式工作,例如建立索引,默认设置为2
3.支持丰富的数据类型(如JSON和JSONB类型、数组类型)和自定义类型
4.PostgreSQL是完全的事务安全性数据库,完整地支持外键、联合、视图、触发器和存储过程(并支持多种语言开发存储过程)。
5.支持表分区,表继承
6.拥有原生的免费客户端工具,方便数据查看和调试。
7.PG 多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap 等数据类型。

主要差异

(1)mongoDB的可扩展性比postgresql强。
(2)postgresql属于传统关系型数据库,事务能力强,支持sql查询,对于传统项目的支持更为友好
(3)postgresql支持多表联合查询,mongoDB不支持多Collection联合查询
(4)MongoDB能充分利用机器的内存资源。如果机器的内存资源丰富的话,MongoDB的查询效率会快很多,相比较postgresql,MongoDB数据库更适合那些读作业较重的任务模型。
(5)postgresql用的是BSD协议,对于企业来说使用自由度更高,可有效降低成本。
(6)postgresql对于运维的支持比mongodb要更友好,因为postgresql虽然不灵活,但是可以拥有更多的描述性内容。
(7)postgresql的客户端工具比mongoDB更加丰富

结论

在传统项目中,postgresql还是有很强的竞争力的,如果服务器内存有限,对于读数据的性能要求不是很高,且需要根据大量字段进行查询的话

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354

推荐阅读更多精彩内容