序
随着互联网的发展和自由软件软件运动的日益活跃,越来越多的人开始将各种数据库应用于自己的网络应用中。于是,各种各样的数据库系统出现在互联网的舞台上,这里最常用的两种数据库是MySQL
和 PostgreSQL,在互联网有着不同的应用和用户群。有趣的是,就象在操作系统领域里面
FreeBSD 和 Linux
之间的争论一样,在这两种数据库之间也存在着不小的争论,而且这些争论有时候很大程度上影响了用户的自己的判断,同时也会令用户做选择的时候感到难受,为了便于大家用自己的眼光看问题,我们特地在这里整理了一些各个方面提供的对比信息,集中起来,供大家作为参考。同时,我们收集的材料还有其他数据库的一些信息,为了尽可能为大家提供比较完整的信息,我们也一并收录了进来。这里我们主要进行特性和性能的比较,还有其他一些很重要的因素,如版权和活跃性等,可以比较容易地在我们后面的其他资源部分得到,这里不再复述。
版权声明
本文所引用的资料由该资料的原著和/或其中文译者所有,本文允许做任何非商业用途的自由转载,但是转载时请参考各个作者各自的版权声明,若有冲突,请与相应作者联系。文中出现的数据和结果都是经过各个作者认真和严格的专业检验的,但是作者对任何数据和结果不做任何承诺和保证也不对因本文造成的任何后果承担任何责任。
版本
v1.0.0RC1
他山之石
这里是晏子兄整理的
Matthias Warkus 写的一份比较。
王婆卖瓜
这里收集了一些各方面自己的评测和对比。
这部分的内容是网友wangbin收集整理的。
PostgreSQL 的测试
PostgreSQL
自己的对比测试比较简单,主要是基于特性方面的比较,不过很有意思的是在这个列表里面没有
MySQL 的身影,从 PostgreSQL 的概念而言 MySQL
好象不是一个完整的数据库,大概是因为目前
MySQL 还缺乏一些关键的数据库特性吧。
这里是 PostgreSQL 自己做的一个 简单的对比。
MySQL 的测试
MySQL
提供了一个数据库测试套件,也是在我们收集的材料中最为丰富和详细的数据资料了。除了提供了与
PostgreSQL 的对比,它还提供了与许多其他数据库的对比数据。MySQL
的比较主要基于速度和性能等方面,在其所有参评平台比较中有特性比较,但是缺少了一个正在成为自由软件的
RDBMS —— InterBase(InterBase 称从6.0开始开放源码,不过不知道是否GPL)。
下面的内容是 MySQL
站点上的获取的信息和测试结果:
你可以从 MySQL 源码发行版本中找到测试程序的完整源码和一些对比数据表。
有 _fast 标记的表项是在非标准 ANSI SQL 模式同时允许使用清理命令(cleanup calls)的情况下测试得到的。这不再是百分之百的 SQL,但这些数据表项仍十分有用。
有一些表项是匿名的 MySQL 用户寄给我们的,所以不能保证这些测试数据完全准确,我们建议你在自己感兴趣的数据库上 运行这个测试程序。如果你愿意和我们共享你的测试结果,你可以将‘output’目录下的文件用 ftp 上传到‘www.tcx.se/pub/mysql/incoming’下,这样我们就可以在将来的测试结果中发布这些测试数据。
以下的图表是所有参测数据库在
crash-me 中的比较
以下的图表是 Linux 平台上的 PostgreSQL 和 MySQL 的对比
PostgreSQL 和 MySQL 的对比数据表
以下图表是 win98 平台上 Access 2000 和 MySQL 的对比
Access 2000 和 MySQL 的对比数据表
以下是 Linux 平台上 AdaBas 和 MySQL 的对比
AdaBas 和 MySQL 的对比数据表
以下是 NT 4.0 平台上 DB2, Informix, MS-SQL, MySQL, Solid 和 Sybase 的对比表
NT 4.0 平台上的 DB2, Informix, MS-SQL, MySQL, Solid 和 Sybase 的对比数据表
以下是 Linux 平台上 Empress,PostgreSQL,MySQL
和 MySQL 的对比表
NT 4.0 平台上的 Empress, PostgreSQL, MySQL 和 SolidSybase 的对比数据表
以下是 Linux 平台上 MySQL、PostgreSQL 和 Solid 的对比表
Linux 平台上 MySQL、 PostgreSQL 和 Solid 的对比数据表
以下图表是 NT 平台上 MySQL 和 Oracle 8.0.3 的对比
注意,这个测试中 Oracle 是通过 ODBC 访问的!许多用户使用 Oracle 自己的 API 来获得更快的速度!
MySQL 和 Oracle 7.0 的对比数据表
以下图表是 mSQL 和 MySQL 的对比,因 mSQL 的局限,限制在很少的比较内容范围内
mSQL 和 MySQL 的对比数据表
以下的表显示了 MySQL 是如何在不同的平台上工作的
注意不同平台间 CPU 时钟速度和可用内存的差别
不同平台上的数字对比
附:
TCX的声明信息:
这些信息是由
TCX 提供的,所以用户可以得到不同数据库的真实情况(而不是销售商提供的信息)。希望以上的信息能够使你容易地找到具有你需要的功能而你有能够放心使用的这么一个数据库服务器。
我们会继续努力使
MySQL 测试帮助用户了解数据库在做不同的典型的工作时的运行速度。
TCX 也会继续开发 crash-me 展现数据库服务器的真正的缺陷和性能。
其他一些资源
在 www.linux.com 和 www.linuxcare.com
里面还有一些投票性质的比较,这些主要是用户的个人喜好和观点,没有明确的测试标准和手段,但是还是对大家有一定参考价值,我们在这里列出链接,请大家自己访问这些链接看看投票结果。
班门弄斧
从上面的这些评测我们可以看出这两种数据库的共同特点就是特点鲜明,各有重点与弱点,那么是否我们就可以得出孰优孰劣的结论而确定支持什么不支持什么呢?我们认为不是这样,因为两种数据库的开发都非常活跃,许多现在的缺点很快就可能得到弥补,比如:在
MySQL 的 TODO 列表里面,事务的支持很明显的放在了最重要的位置;而
PostgreSQL 的最新版本 7.0
的速度和稳定性都有极大的提高,而且在 7.1
中将对现有大对象接口进行大的增强;这些都说明,两者都在进步,都在不断地发展,真正做决定的还是作为应用开发人员的我们自己,通过合理的分析,扬长避短,正确地选用合适自己的数据库,最大限度的满足应用的需要。不要忘记,作为计算机从业人员的任务就是用我们的学时和经验为非专业人员提供服务。最后,我们将继续这份信息比较工作,不断更新我们的信息,希望能为大家提供更详细的材料。