对比版本
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技术
网友评论