今天看到了一篇文章“MySQL vs. PostgreSQL”,讲述如何在不同的场合在MySQL和PostgreSQL之间作出正确的选择。实际上,对这两个开源产品不熟悉的人,通过这篇文章,也知道了MySQL和PostgreSQL的不同应用范围。
1、什么情况下选择MySQL
首要考虑是数据库应用的场合,如果是基于WEB的应用程序,或对数据库性能要求较高的应用,MySQL以它的快速和易于web部署将成为首选。然而,如果你的应用程序需要依赖存储过程和外键引用实现,那么还是选择PostgreSQL吧。
需要说明的是,MySQL不是完全兼容ANSI SQL标准的产品,PostgreSQL更加接近ANSI SQL标准,MySQL更加接近ODBC标准。(对于需要移植到其他数据库平台的产品来说,符合ANSI SQL标准的产品可能更好些。)
总结一下,选择MySQL比选择PostgreSQL好的理由:
a、MySQL相对PostgreSQL运算更快
b、数据库设计更加简单
c、你可以更加方便创建web站点
d、MySQL的复制技术已经完全测试通过
e、你无需对MySQL数据库做清空处理
2、什么情况下选择PostgreSQL
很少有web开发者选择PostgreSQL,因为他们觉得PostgreSQL的一些附加特色功能降低了数据库性能。但这些特色功能正是其优于MysQL的地方所在。
比如,外键、触发器、视图。他们的存在可以在应用程序中隐藏数据库设计的复杂程度,从而避免了创建一些庞杂的SQL命令。比如,很多PostgreSQL的用户都喜欢PostgreSQL的函数功能,而在MySQL里面,你可能需要用嵌套的对重、复合、复杂SQL语句来实现的功能,PostgreSQL的一个小小的函数就解决问题了。同时,PostgreSQL符合ANSI SQL规范。
总结一下选择PostgreSQL的理由:
a、可进行复杂数据库的设计
b、可以在Oracle、Sybase、MSSQL之间迁移
c、复杂业务规则的设计建立
d、服务器可以进行脚本编程(Tcl、Perl、Python等)
e、支持事务
f、支持存储过程
g、支持几何数据类型(坐标、多边形等)
h、使用了R树
阅读参考
http://builder.com.com/article.jhtml?id=u00820010815cnt01.htm
http://builder.com.com/article.jhtml?id=u00320020523dol01.htm


