1. 什么是PostgreSQL
PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 支持复杂查询、外键、触发器、视图、事务完整性、MVCC(多版本并发控制)。
PostgreSQL号称最先进,MySQL号称最流行
2. PostgreSQL特点
1.PostgreSQL的字段类型支持的多2.对事务的良好支持,并发良好的支持,以及复杂查询的优化能力3.在数据量比较大的时候,PostgreSQL 的效率毋庸置疑是很高的4.PostgreSQL支持的bjson5.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上碰到钉子了才会考虑postgres2.如果操作系统必须要求是windows,那么可以不用考虑postgres了3.使用postgres无非是要使用postgres的优势,大数据处理速度,稳定,复杂函数,使用mysql替代不了的功能,目前应该都不需要4.postgres无疑是未来发展的趋势,在互联网继续发展的道路上postgres会发展的越来越好,认为也可以去尝试。5.对于技术的渴望,还是很希望应用postgres数据库,可以多个技能,没什么不好6.对于微服务架构,当然可以两者同时使用,但会增加维护成本
以上只是从自己的理解尽量客观公正地评价MySQL和PostgreSQL的优劣。因为没有在具体项目场景中使用过PostgreSQL,其中的带有倾向性的意见只代表个人观点.