<分区>
我需要帮助选择。我想为我的 .NET 网站选择一个 database_management_system。
我当前的变体是:
- MariaDB
- PostgreSQL
- Firebird
我使用的是 MS SQL,但没有使用这些的经验,因此无法比较它们。
我需要他们提供的是:稳定性、速度、免费且良好的 .NET ORM,请帮助我选择其中之一。
有那么一刻我更喜欢 Postgres,但不知道为什么。
添加:而且我认为我需要一个真正的 killer 级功能来改变我的看法。
在任何时候我都更喜欢 PostgreSQL 而不是 MySQL。 PostgreSQL 在 SQL 语句(窗口函数、递归公用表表达式)方面具有更多特性,更好地支持约束和索引(例如,部分索引和基于函数的索引)。
而且我仍然不确定 GPL 许可证何时会迫使我购买商业许可证 - 特别是对于商业应用程序。这是我避免使用 MySQL 的另一个原因 - 许可证情况对我来说太不明确和模糊了。
PostgreSQL 在需要负载平衡读和写语句的真正集群的环境中设置起来更加复杂。
高可用性(即当主服务器死机时接管备用服务器) - 特别是对于 9.x - 与 MySQL 一样简单。
就速度而言,它们之间可能没有太大区别。它们中的任何一个都可以很快,也可以很慢。这取决于您如何使用它和您的工作负载的特征(PostgreSQL 似乎在高并发读取 和 写入时更快 - 但这可能已经随着 MySQL 5.5 和改进的 InnoDB 引擎而改变)。
Firebird 在 SQL 功能方面也非常强大(据我所知,它是第一个支持递归公用表表达式的开源 DBMS)。
我对 Firebird 最担心的是杂乱无章的文档。由于许可问题,没有单独的大型手册,但它是原始 Interbase 手册加上每个版本的发行说明的集合。因此,如果您需要检查某种语法,您可以从 Interbase 手册开始,然后检查 FB 1.5 的发行说明,然后是 FB 2.0,然后是 FB 2.1。有点笨拙,但团队正在努力解决这个问题并且文档也在改进(仍然无法与 PostgreSQL 或 MySQL 手册相匹配)。
无论如何,我不是 ORM 的忠实粉丝,而且我从未将 PostgreSQL 与 .Net 一起使用,因为我只使用 Java。所以我不能对此发表评论