评估大量因素
我们将要在中途改变方向。在这部分,我将涉及与性能无关的话题。在下一个并且是最后一部分,我将全面研究基准测试并以最终结论结束。
一般差别
不同于PostgreSQL,MySQL和mSQL不是真正的关系数据库管理系统。我看到有人在新闻组里把MySQL称为“只是一个快速存储工具”,并且mSQL甚至被称为了一个玩具--不敢恭维。至少mSQL实现了部分一个完整的SQL DBM应该提供的功能。
如果一个人需要一个真实的RDBMS,三者中唯一可行的选择是PostgreSQL。如果计算原始的性能表现,特别是如果对数据库所做的存取并不复杂并且大多数是自动的,一个更小的系统可能更好一些。因此,mSQL和MySQL被宣传为网数据库系统。
许可证
PostgreSQL以一个BSD风格许可证被分发,在所有相关的方面均是自由的(也许对一些狂热者来说
太自由了),如果版权声明被保留,基本上一个人可以用该软件做任何事情。
MySQL是免费的并且在某些条件下源代码允许被修改,但是禁止为了商业目的的再分发。
mSQL对非商业性组织的使用是免费的;但在一个14天评估时期以后,购买一个许可证是必要的。
因为这些差别,在使用他们之一的企业的人们需要仔细地考虑许可条件。
ANSI 标准的实现
这3个系统都是在叫喊是完全实现 ANSI SQL 标准的,公平地讲,这在我看来有点可怕。当MySQL实现了开发者已经定义好的一个子集时,mSQL甚至没有尝试真正遵循ANSI 标准。PostgreSQL 最后定位在与 ANSI 完全兼容,但是它仍然有一条长路要走。
PostgreSQL确实还没有支持参考完整性(RI),但是只测试了DBMS的事务(transaction)。另外,新的SQL特征像SQLSTATE变量也没有实现。
MySQL既不支持事务也不保证参考完整性;对事务存取数据库表能明确地为锁定和解锁。
mSQL缺乏 ANSI SQL 的大多数特征,它仅仅实现了一个最最少的API,没有事务和参考完整性。
[Page: ]
APIs
所有3个系统测试的API大部分对处理是透明的,发生任何问题通常是由于不正确的文档,而不是API本身。