选择开源数据库时,postgresql和mysql哪个更好?
Postgresql 和 mysql 是免费且功能强大的开源数据库。很多用户面对这两个库都会有一个疑问,MySQL和PostgreSQL哪个是最好的开源数据库?您应该选择哪个开源数据库?
1。 PostgreSQL 相对于 MySQL 的优势
1。 SQL的标准实现比MySQL更好,功能实现更严格;
2。存储过程的功能支持比MySQL更好,具有本地规划执行计划的能力;
3。对表连接的支持比较完善,优化器功能比较完善,支持多种类型的索引,复杂查询能力较强;
4。 postgresql 主表存储在堆栈表中。 MySQL使用索引来组织表,并且可以支持比MySQL更大的数据量。
5。 Postgresql主从复制都是物理复制。与MySQL基于binlog的逻辑复制相比,数据一致性更可靠,复制性能更高,对主机性能影响更小。
6。 MySQL存储引擎插件机制存在复杂的锁定机制问题,影响并发性,这是postgresql中不存在的。
2。 MySQL 相对于PostgreSQL 的优势:
1。 Innodb的MVCC机制是基于回滚的,相比于基于XID的新旧数据PG存放在一起的MVCC机制,是非常账户的。新旧数据存储在一起,必须定期触发VACUUM,这会带来冗余IO和数据库对象锁定开销,导致数据库整体并发能力下降。而且VACUUM如果不及时清理,还会造成数据膨胀;
2。 MySQL 使用索引来组织表。这种存储方式非常适合基于匹配主键的查询和删除操作,但在表结构的设计上存在障碍;
3、MySQL优化器比较简单,系统表、运算符、数据类型的实现都非常精简,非常适合简单的查询操作;
4。 MySQL分区表实现优于基于遗留表的PG分区实现主要体现在分区数量达到数千、数万时处理性能差异较大。
5。 MySQL存储引擎的插件机制使能更多的应用场景。例如,innodb适合事务处理场景,而myisam则适合静态数据查询场景。
3。结论
总的来说,开源数据库并不完美。两者相比,Oracle的商业数据库无论是架构还是功能都更加完善。
相比mysql,postgresql更适合严格的企业应用场景(如金融、电信、ERP、CRM),而MySQL更适合业务逻辑相对简单、数据可靠性要求不高的互联网场景(如google、facebook、阿里巴巴)。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。