我计划在下一个开发项目中使用Firebird或Postgres,因为它们都采用类似BSD的许可证。
我在这里找到了一篇很好的两种数据库的比较文章,但是这篇文章已经过去四年多了,现在两种数据库已经有了很大改进。
请问是否有人可以更新比较表格,使其适用于当前版本的Firebird和Postgres?或者是否有其他网站提供了较好的最新比较文章呢?
我计划在下一个开发项目中使用Firebird或Postgres,因为它们都采用类似BSD的许可证。
我在这里找到了一篇很好的两种数据库的比较文章,但是这篇文章已经过去四年多了,现在两种数据库已经有了很大改进。
请问是否有人可以更新比较表格,使其适用于当前版本的Firebird和Postgres?或者是否有其他网站提供了较好的最新比较文章呢?
在选择像RDBMS这样的技术时,不能仅仅基于功能列表对比,而是要回答以下问题:
对我来说,FB不是一个好的选择。我可以举两个例子:
我还可以再举两到三个例子,但这已足够让我说:不,FB不是我的选择,它不是RDBMS,它是一种玩具。
而且他们的文档很糟糕。实际上,每个版本都没有实际的参考资料。当人们在论坛中问:发布XX版有哪些函数的完整列表?标准答案是:从上一个官方Interbase版本中取出一个列表,然后从所有后续版本的“发布说明”中添加(删除)函数。
而且他们有奇怪的支持/开发策略。他们关注的是对他们来说有趣的深层技术问题,而不是真正关键或令用户烦恼的问题。
我长期使用Firebird,但不建议以任何方式使用它。它们有许多根本性问题,而Postgres则没有。仅举一个例子,他们仍然没有'alter view'命令,要更改视图必须删除并重新创建它及其依赖的所有视图。这是FB的众多问题之一。根本不能正确比较这些数据库引擎。我曾经遇到过许多情况,即使在正常工作负载下,甚至没有断电,Firebird数据库也会损坏。如果你还在考虑是否使用Firebird,请不要使用它!如果你已经选择了FB,那么以后你会记得我的话的 :)
ALTER VIEW
语句了。这个答案应该是:"目前 (FireBird v2.0),FireBird 不适合生产使用..." - Yuval多线程架构可用? 是的(超级服务器)
实际上,经典服务器是可扩展性更好的服务器类型。从Firebird 2.5开始,还有一种架构称为SuperClassic。我在这里写了一个关于它们之间区别的小文章:SuperServer、ClassicServer或SuperClassic?
将事务信息存储在与数据相同的文件中?是的(红色显示)
我不明白为什么要把这个写成红色。Firebird使用谨慎的写入方式确保数据库结构始终保持一致。
临时表?否
在Firebird 2.1中可用。请查看发布说明。
是否具有丰富的内置函数?否
Firebird 2.1也改进了这个问题。请查看发布说明。
多种身份验证方法(如LDAP)?否
虽然没有LDAP支持,但Firebird 2.1允许Windows身份验证。请查看发布说明。
创建用户定义类型?否
我不确定作者在这里指的是什么,但Firebird一直有领域(domains)。
需要备份/还原才能压缩?是的(红色显示)
有争议。数据库空间可以被重用,我很难想象在生产环境中需要缩小数据库。
在查询中使用POSIX正则表达式吗?不
Firebird 2.5支持正则表达式。发布说明
数据库监控吗?不
是的,Firebird 2.1通过系统表支持数据库监控。Firebird 2.5添加了对跟踪工具的支持。
我知道至少有一个非常好用的Firebird数据库监控工具。 ;)
能够查询其他本地或远程服务器上的数据库吗?不
Firebird 2.5可以查询远程数据库。发布说明
以下是一份较为新的比较(2008年):
...以及 一些来自8.3:
......我不知道Firebird是否具备这些功能。
一个重要的事情是部署:
.msi
)。 - Steve Schnepp