PostgreSQL调研

本文对比分析了PostgreSQL与MySQL两大数据库系统的特点与优势。PostgreSQL作为功能强大的开源对象关系数据库,支持复杂查询、事务完整性和并发控制,尤其在大数据处理、复杂函数支持方面表现突出。而MySQL以其成熟度和流行度见长,但在JSON支持和序列处理上不如PostgreSQL。文章还探讨了两者在不同场景下的适用性及未来发展趋势。

1. 什么是PostgreSQL

PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 支持复杂查询、外键、触发器、视图、事务完整性、MVCC(多版本并发控制)。

PostgreSQL号称最先进,MySQL号称最流行

2. PostgreSQL特点

1.PostgreSQL的字段类型支持的多
2.对事务的良好支持,并发良好的支持,以及复杂查询的优化能力
3.在数据量比较大的时候,PostgreSQL 的效率毋庸置疑是很高的
4.PostgreSQL支持的bjson
5.PostgreSQL对序列友好
6.PostgreSQL支持搜索索引,NoSQL,数据仓库,时序数据,流处理,缓存,图数据

3. 对比

3.1 MySQL PostgreSQL实力对比

MySQL的背后是一个成熟的商业公司,而PostgreSQL的背后是一个庞大的志愿开发组这使得MySQL的开发过程更为慎重,而PostgreSQL的反应更为迅速

3.2 MySQL比PostgreSQL更流行

流行对于一个商业软件来说,也是一个很重要的指标,流行意味着更多的用户,

意味着经受了更多的考验,意味着更好的商业支持、意味着更多、更完善的文档资料

3.3 对操作系统的支持

MySQL可以兼容在Windows环境下运行。MySQL作为一个本地的Windows应用程序运行服务,而PostgreSQL是运行在Cygwin模拟环境下(linux)

。PostgreSQL在Windows下运行没有MySQL稳定,应该是可以想象的.

3.4. 对JSON的支持

PostgreSQL专门有bjson数据类型的,在一个json保存在字段里面的同时,支持很多高阶的SQL查询语法去遍历和运算json中间的节点。

在非关系型的数据类型中,MySQL可是比Postgre差的太远了。

也正是因为互联网的崛起,PostgreSQL的BJson格式的支持才再最近几年火起来的

3.5 MySQL相对postgreSQL,轻便,postgreSQL显得庞大

postgreSQL是一个全栈数据库,支持:搜索索引,NoSQL,数据仓库,时序数据,流处理,缓存,图数据。
比如全文索引,可以不用集成elasticsearch就可以完成。

3.6 序列支持

MySQL 不支持多个表从同一个序列中取 id, 而 postgreSQL 可以。
postgreSQL不支持自增主键,在代码开发过程中需要借助序列

3.7 复杂函数支持

比如OVER语句函数,MQSQL不支持,
postgreSQL有更好的函数支持,可以向oracle一样。

3.8 未来趋势上

PostgreSQL再未来与技术上要强于MySQL,但是短时间MySQL的地位是无可动摇的。

3.9 成本上比较

3.9.1 代码集成
目前集成中,主要区别是SQL风格和主键策略,mysql的主键策略可以选择自增,

儿postgreSQL则必须借助序列,所以没有办法做到完全兼容,如果后期需要切换数据库是需要修改代码风格的
3.9.2 维护成本
Mysql现在依然是最流行的数据库,而postgreSQL虽然是先进的,但越先进的越是需要投入成本
3.9.3 学习成本
postgreSQL的学习成本要大于mysql的,需要学习复杂的函数等等

4. 总结

1.mysql用的人多,但mysql有它的局限性,一般在mysql上碰到钉子了才会考虑postgres
2.如果操作系统必须要求是windows,那么可以不用考虑postgres了
3.使用postgres无非是要使用postgres的优势,大数据处理速度,稳定,复杂函数,使用mysql替代不了的功能,目前应该都不需要
4.postgres无疑是未来发展的趋势,在互联网继续发展的道路上postgres会发展的越来越好,认为也可以去尝试。
5.对于技术的渴望,还是很希望应用postgres数据库,可以多个技能,没什么不好
6.对于微服务架构,当然可以两者同时使用,但会增加维护成本

以上只是从自己的理解尽量客观公正地评价MySQL和PostgreSQL的优劣。因为没有在具体项目场景中使用过PostgreSQL,其中的带有倾向性的意见只代表个人观点.

转载于:https://my.oschina.net/angelbo/blog/3021475

PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL. PostgreSQL支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、视图、事务完整性等。 PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。 事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。 本课程作为PostgreSQL数据库管理之三,主要讲解以下内容:1.     PostgreSQL约束讲解和剖析2.     PostgreSQL数据类型3.     PostgreSQL的结构管理4.     PostgreSQL条件表达式和操作5.     PostgreSQL使用小技巧
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值