查阅了很多资料,没有一个能明确告诉你用哪个更好,抛开两者一部分技术上的不同优势,整理了几点区别如下,
MySQL诞生于1994年,支持多种存储引擎,常见的有 MyISAM 和 InnoDB,前者实现了高速读但不支持ACID,后者实现了ACID。MySQL在所有权归于Oracle之后,提供了多个版本,其中有免费的也有收费的。
PostgreSQL诞生于1985年,以稳定著称,可靠性、数据一致性与完整性是PostgreSQL的最高优先级特性,完全支持ACID,它只提供单个完整功能的版本。
MySQL在国内更为流行,一个很大的原因在于PostgreSQL在早期不提供Windows版本。
MySQL能够进行快速的读取和大量的查询操作,不过在复杂特性与数据完整性检查方面不太尽如人意。MyISAM引擎是最快的,因为它只执行很少的数据完整性检查,适合于后端读操作较多的站点,不过对于包含敏感数据的读/写数据库来说就是个灾难了,因为MyISAM表最终可能会损坏。
PostgreSQL的可靠性好,在保护数据方面很擅长,而且是个社区项目,不会陷入厂商的牢笼之中。MySQL更加灵活,提供了更多选项来针对不同的任务进行裁剪。
一个常见的误解就是MySQL要比PostgreSQL更容易学习。关系数据库系统都是非常复杂的,这两个数据库的学习曲线其实是差不多的。
PostgreSQL与Oracle数据库很相似,同为多进程框架,所以能支持高并发的应用场景,所以熟悉Oracle的话转到PostgreSQL数据库上是比较容易的。
MySQL从5.5版本开始性能提升很大,单机性能强于PostgreSQL。