|
什么情况下采用MySQL
你为什么要采用MySQL而不是PostgreSQL呢?首先,我们需要从数据库需求的角度考虑应用程序的需求。假如我想创建一个Web应用程序而性能成为头疼的问题,那么MySQL将是我的首选,因为它的速度更快而且设计为同基于Web的服务器协作。但是,如果我想创建要求支持事务和外键索引的应用程序则无疑必须采用PostgreSQL。
作为一名开放源代码开发人员,我经常用到这两种数据库,通常我会在设计和开发过程中采用给定数据库的几乎所有特性。当我的应用程序要求高性能的时候用PostgreSQL作为数据库驱动的网站还是不够的。
MySQL并不完全遵守ANSI SQL标准,但我必须指出,虽然PostgreSQL更接近ANSI SQL标准,但MySQL却更接近ODBC标准。
这里我给出一些采用MySQL而非PostgreSQL的理由:
* MySQL相比PostgreSQL快得多。
* 数据库设计更简单。
* 你可以创建基本的Web驱动网站。
* MySQL的复制已经接受了全面测试。
* MySQL无需清空。
什么情况下采用PostgreSQL
许多开发者不使用PostgreSQL的原因是他们认为这种数据库额外的特性降低了系统的性能。许多Web开发者更喜欢MySQL一文就对Web开发者的心理及其采用MySQL的原因进行了阐述。然而,PostgreSQL同样提供了超出MySQL的优势。
比方说,我经常要用到外键索引、触发器和视图等特性。这些特点可以让我在应用程序中隐藏数据库的复杂性,从而无须创建复杂的SQL命令。我知道许多开发者尤其喜欢PostgreSQL SQL命令丰富的特性。MySQL和PostgreSQL之间最显著的差别就是你不能在MySQL中嵌套子选择(subselect)的子查询(subqueries)。PostgreSQL在很大程度上遵守SQL ANSI标准,从而允许创建复杂的SQL命令。
这里我给出一些采用PostgreSQL而非MySQL的理由:
* 复杂的数据库设计
* 更容易迁移到Oracle、Sybase或者MS SQL等商业数据库
* 复杂的规则集合(比如业务规则)
* 在服务器上采用过程语言
* 事务
* 采用存储过程
* 采用地理数据
* R树(用于索引)
两者同时采用的情况
当然,是你而不是别人决定选择哪一种更适合你的应用程序或者网站的数据库。所以有时你还真有可能想两者兼得。最近我在Enterasys Networks公司的质量保障部门工作,我负责创建数据库驱动的一个内部网站作为质量保障测试工作的信息仓库。从一开始我就认定PostgreSQL是要用到的唯一数据库。事实上我错了。最后这个内部网站上用到了两种数据库。我用MySQL处理整个网站的前端操作,用PostgreSQL跟踪我们保存的所有测试。我发现MySQL和PostgreSQL各自都能起到相应的作用。所以,我的结论是谁也谈不上就一定别另一种强,每一种数据库在开放源代码数据库世界里都有自己派用场的地方。 |
|