2

我需要帮助选择。我想为我的 .NET 网站选择一个 database_management_system。我目前的变种是:

- MariaDB
- PostgreSQL
- 火鸟

我使用了 MS SQL,对这些没有经验,无法比较它们。

我需要他们的是:稳定性、速度和免费且良好的 .NET ORM,请帮我选择其中之一。

有一段时间我更喜欢 Postgres,但不知道为什么。

补充:而且我认为我需要一个真正的杀手级功能来改变我的看法。

4

3 回答 3

5

任何时候我都更喜欢 PostgreSQL 而不是 MySQL。PostgreSQL 在 SQL 语句(窗口函数、递归公用表表达式)方面具有更多特性,更好地支持约束和索引(例如部分和基于函数的索引)。

而且我仍然不确定 GPL 许可证何时会迫使我购买商业许可证——尤其是对于商业应用程序。这是我避免使用 MySQL 的另一个原因——许可证情况对我来说太不清楚和模糊了。

在需要具有负载平衡读写语句的真正集群的环境中,PostgreSQL 的设置更加复杂。

高可用性(即在主服务器死机时接管的备用服务器) - 特别是在 9.x 中 - 与 MySQL 一样容易。

就速度而言,它们之间可能没有太大区别。它们中的任何一个都可以很快,也可以很慢。这取决于您如何使用它以及您的工作负载的特征(PostgreSQL 似乎在高并发读取写入时更快 - 但随着 MySQL 5.5 和改进的 InnoDB 引擎这可能已经改变)。

Firebird 在 SQL 功能方面也非常强大(AFAIK,它是第一个支持递归公用表表达式的开源 DBMS)。

我对 Firebird 最大的担忧是文档杂乱无章。由于许可问题,没有单一的大型手册,但它是原始 Interbase 手册以及每个版本的发行说明的集合。因此,如果您需要检查某种语法,请从 Interbase 手册开始,然后检查 FB 1.5、FB 2.0 和 FB 2.1 的发行说明。有点笨拙,但团队正在努力,文档正在改进(仍然无法匹配 PostgreSQL 或 MySQL 手册)。

无论如何,我不是 ORM 的忠实粉丝,而且我从未将 PostgreSQL 与 .Net 一起使用,因为我只使用 Java。所以我不能对此发表评论

于 2011-04-06T07:07:16.270 回答
2

NHibernate是我推荐的一种流行的 ORM,尽管它一开始的学习曲线相当陡峭。它支持许多 DBMS,包括您列表中的 PostgreSQL 和 Firebird,当然还有 MySQL - 有什么理由不在您的列表中吗?- 它适用于.Net。

如果稳定性和速度是您唯一的要求,那么 MySQL(社区版)或 PostgreSQL 都可以 - 当您必须考虑高可用性或高可扩展性场景时,争论才真正开始,但这不会成为问题,如果这是一个小应用程序。

我没有使用 Firebird (nee InterBase) 或 MariaDB 的经验,所以无法发表评论。

于 2011-04-06T05:42:00.730 回答
1

我是火鸟的忠实粉丝

这里有一个比较

于 2011-04-06T19:35:53.007 回答