常用数据库的朋友,对PostgreSQL应该并不陌生,这个号称“世界最先进的开源数据库系统”,着实让不少朋友着迷。
然而遗憾的是,PostgreSQL在国内的应用并不广泛,可能大家用的最多的,还是MySQL、SQLServer、Oracle这些数据库。
Oracle和SQLServer都是商业闭源数据库,都是美国的,MySQL又被Oracle收购了,其开源前景非常暗淡。
在目前中美贸易战的大背景下,连华为都在砸锅卖铁做到全流程国产化,我们作为搞数据库的所谓IT人士,真的应该开始花时间研究包括PostgreSQL在内的各类极品开源系统了。
当然,今天我们聊PostgreSQL,主要出发点并不是因为当前的世界局势,而是PostgreSQL本身,她有着“世界最先进的开源数据库系统”的名号,这名号不是吹出来的,是实实在在的。
今天,我们就谈谈PostgreSQL到底好在哪里。
有朋友会问,这一点真的很重要吗?我的回答是真的非常重要。PostgreSQL是属于全世界的开源数据库系统,她拥有一支遍布全球的非常活跃的开发队伍。除了登记注册的全球志愿者团队负责维护开发外,还包括很多顶尖黑客都愿意为此奉献。
您试想一下,有如此众多高手的大力支持和无私奉献,PostgreSQL会差吗?您可以不相信微软、可以不相信Oracle,难道您连全世界顶尖高手和顶尖黑客的无私奉献都信不过?
从这个角度延伸一下,作为开源的系统,PostgreSQL的无私奉献真的很了不起。SQL Server、Oracle、DB2这些都是闭源的,PostgreSQL想要汲取它们的营养非常难,而反过来就很难说了。谁是伟大的、谁是无耻的,还需要明讲吗?
作为完全可以对标甚至超越Oracle、SQLServer的大型数据库系统,PostgreSQL对SQL标准的支持非常棒,基本全面覆盖了所有 SQL-2/SQL-92 和 SQL-3/SQL-99标准。换句话说,要说那个数据库最正统,那非PostgreSQL莫属。
PostgreSQL很早就是全功能的自由软件数据库。她支持非常丰富的数据类型(丰富到变态级别)、她支持支持事务和子查询、她支持多版本并行控制系统(MVCC)、她支持数据完整性检查等等。
无论您是入门级的数据库新手、还是高深莫测的数据库管理员,PostgreSQL奉献给您的,是最标准、最正统的SQL标准支持,如果您不选她、那选谁还会更合适呢?
无论是各种Linux、还是Windows,PostgreSQL的支持都非常棒;无论您是用C、还是用Pascal、PHP、GO、Python、Kotlin、C#、Java、Ruby等等,PostgreSQL都为您提供了非常完美的编程接口支持。
当然,其它数据库可能也能做到,但作为完全开源的全功能数据库系统,能够获得所有主流编程语言的支持,实属难得啊。不要跟我提MySQL,这个被流氓公司收购了的前途未卜、半死不活的,根本没有跟PostgreSQL对比的资格。
所以说,无论您是数据库管理员、还是程序员,如果您希望选择一个相对完美的数据库系统,我敢自信的说PostgreSQL绝对是最靠近完美的那个。
对NoSQL和NewSQL比较了解的朋友应该清楚,JSON是NoSQL和NewSQL的基础,我们无法定论是JSON成就了NoSQL和NewSQL、还是NoSQL和NewSQL成就了JSON,总之NoSQL、特别是NewSQL已经是未来数据库发展的大方向,这是铁的事实。
PostgreSQL对JSON的支持,是所有传统关系型数据库中最彻底最全面的,她是字段级别的直接支持,而且提供了大量的JSON处理函数。从这个角度来看,PostgreSQL与NewSQL的距离越来越靠近。
当然,并不是说支持JSON好就算是NewSQL了,还有很多其它技术进步融合,包括OLAP、OLTP的完美支持,PostgreSQL都在越做越好。拥抱PostgreSQL,从某种意义上也可以说是拥抱了未来。
这是重点,也是PostgreSQL在全世界受到极大青睐的主因之一。很多朋友理解性能和稳定性,喜欢从纯技术的角度出发,我这里换一个角度。
前几天,跟一个朋友聊起,他帮一个客户开发的系统,已经用了四五年了,单个表的数据量已经涨到了千万级别,他没做任何处理(分表、清理等都没做),现在的速度跟刚开始启用的时间没什么变化。
就问您服了没有?
说了这么多,如果您还是认为死贵死贵的Oracle和SQLServer是个宝,那就是我明珠暗投了。
拥抱PostgreSQL、您就拥抱了未来!