这两种系统都具有相当程度的稳定性、灵活性和优良的性能。MySQL具有一些PostgreSQL所缺乏的特点,反之亦然。不过,我所关注的主要焦点是帮助你自己确定哪一种数据库更适合你的开发任务。
在进行逐项比较之前,我得事先声明比较的前提是两种数据库都执行了默认的安装。MySQL具有多种表类型,它们支持事务和外键,同时遵守ACID。但是,这些表类型的某些配置相当复杂。许多开发者或者程序员其实并不会用到MySQL中的额外表类型。我们正是在这一前提下才能对这两种产品进行比较的。
表A是MySQL和PostgreSQL最常用特性的逐项比较。
表A并没有对两种数据库系统的特性、数据类型或者性能问题做事无巨细的细致比较,它只给出了各自所能提供的某些特性。从这个表我们可以看出,PostgreSQL为传统数据库应用提供了相当全面的特性,而MySQL则更关注于基于Web应用程序的快速性能表现。开放源代码开发还会在这两种产品的后续版本中引入更多特点。
表A
POSTGRESQL |
MYSQL |
|
ANSI SQL标准兼容性 |
近似ANSI SQL标准 |
遵守某些ANSI SQL标准 |
性能 |
更慢 |
更快 |
子选择 |
是 |
不 |
事务 |
是 |
是,不过必须采用InnoDB表类型 |
数据库复制 |
是 |
是 |
外键支持 |
是 |
不 |
视图 |
是 |
不 |
存储过程 |
是 |
不 |
触发器 |
是 |
不 |
联合 |
是 |
不 |
完全连接 |
是 |
不 |
约束 |
是 |
不 |
Windows支持 |
是 |
是 |
清空 |
是 |
不 |
ODBC |
是 |
是 |
JDBC |
是 |
是 |
各类表类型 |
不 |
是 |
MySQL和PostgreSQL的比较