MySQL和PostgresSQL对比

对比版本
Mysql 5.7
PostgresSQL 9.5

对比方面

  • 1、 流行程度Mysql > PostgreSQL,PostgreSQL在稳步上升
  • 2、 GIS:5.7之前,只有MyISAM支持空间索引,只支持二维空间的,空间函数较少,5.7,innodb也加入对空间索引的支持
  • 3、MySQL是多线程模型,PostgreSQL是多进程模型。
  • 4、MySQL的SQL层和存储层分离,支持多种存储引擎,例如InnoDB, MyISAM, NDB。PostgreSQL和绝大多数数据库一样是单存储引擎。
  • 5、FDW、FDW是foreign-data wrapper的缩写,见名知意,就是将外部数据包装为sql可操作数据的模块,PostgreSQL支持FDW
  • 6、高可用的原理不同,binlog + redo log + undo log vs redo log
  • 7、复制原理不同,MySQL的复制传输的是SQL层的binlog记录,binlog记录的是数据的逻辑变更(SQL语句或基于行的数据变更),属于逻辑复制;PostgreSQL的复制传输的是WAL记录,WAL记录的是数据块的变更,属于物理复制
  • 8、Mysql只支持普通视图,PostgreSQL既支持普通视图,也支持物化视图
  • 9、MySQL的表定义存储在特别的.frm文件中,DDL操作不支持事务。PostgreSQL中存储元数据的系统表和普通表的存储格式完全相同,这使得PostgreSQL很容易扩展,并且PostgreSQL的DDL操作也支持事务
  • 10、SQL特性,MySQL早期的定位是轻量级数据库,目前宽泛的SQL 99的子集, PostgreSQL的定位是高级的对象关系数据库,从一开始对SQL标准的支持比较全面,目前支持大部分的SQL:2011特性
  • 11、并发控制不一样,PostgreSQL是基于MVCC和SSI控制保证可行化,innodb是通过SS2PL保证可串行化,innodb的RC和RR阶段,使用的MVCC和S2PL技术,PostgreSQL的RR阶段使用的MVCC和SI技术

参考来源

  • MySQL和PostgreSQL的比较
  • mysql空间扩展 VS PostGIS
  • PostgreSQL的postgres_fdw跨库使用
  • 用PostgreSQL FDW做敏捷式数据融合

你可能感兴趣的:(MySQL和PostgresSQL对比)