PostgreSQL相对MySQL有啥区别?

一、数据类型

PSQL多支持了一些数据类型,比如money(货币类型)、jsonp、几何类型、数组类型、网络地址类型…

二、表

  • 约束:多了检查约束
  • 索引:支持新的倒排索引、GIN索引等
  • 支持物化视图

三、事务

PostgreSQL是ACID兼容的数据库,它提供了高级的事务隔离级别,这意味着它支持所有上述ACID特性。而MySQL则相对较弱,仅在特定的存储引擎(如InnoDB)中支持ACID。InnoDB是MySQL的默认存储引擎,并且在其上提供了不同的事务隔离级别,包括读未提交、读已提交、可重复读和串行化。然而,MySQL的其他存储引擎(如MyISAM)并不支持事务或ACID特性。
事务隔离级别:PGSQL在老版本中,只有两个隔离级别,读已提交和串行化,默认是读已提交。

四、总结

PostgreSQL相对MySQL支持的点:

  • PostgreSQL完全开源。MySQL虽然开源,但不够彻底。因为受到GPL协议,必须开源,不适合进行二次开发。
  • PostgreSQL的数据类型很丰富。MySQL的数据类型不够丰富。
  • PostgreSQL是有序列的概念的。MySQL不支持序列概念。
  • PostgreSQL默认支持ACID特性。而MySQL需要特定存储引擎来支持这些特性。
  • PostgreSQL的插件特别丰富。MySQL网上没有比较好用的插件。
  • PostgreSQL支持主从复制的同步操作,可以实现数据的0丢失。MySQL的主从复制同步问题难以解决,没有一个官方策略。
  • PostgreSQL的MVCC实现和MySQL不大一样。PostgreSQL一行数据会存储多个版本,最多可以存储40亿个事务版本。

你可能感兴趣的:(数据库,postgresql,mysql,数据库)