I need help with a chose. I want to chose a database_management_system for my .NET Web Site. My current variants is :
我需要一个选择的帮助。我想为我的.NET网站选择一个database_management_system。我目前的变种是:
- MariaDB
- PostgreSQL
- Firebird
- MariaDB - PostgreSQL - Firebird
I used MS SQL and have no experience with those ones and can't compare them.
我使用的是MS SQL,对这些没有经验,无法比较它们。
What I need from them is : Stability, speed, and free and good ORM for .NET , help me to chose one of them please.
我需要的是:.NET的稳定性,速度,*和良好的ORM,帮助我选择其中一个。
For a moment I prefer Postgres but have no idea why.
有一刻我更喜欢Postgres,但不知道为什么。
Added : And I think I need a true killer-feature to change my opinion.
补充:我认为我需要一个真正的杀手功能来改变我的观点。
3 个解决方案
#1
6
I prefer PostgreSQL over MySQL any time. PostgreSQL has more features when it comes to SQL statements (windowing functions, recursive common table expressions) better support for constraints and indexing (e.g. partial and function based indexes).
我喜欢PostgreSQL而不是MySQL。 PostgreSQL在SQL语句(窗口函数,递归公用表表达式)方面具有更多功能,可以更好地支持约束和索引(例如,基于部分和函数的索引)。
And I'm still unsure about when the GPL license forces me to buy a commercial license - especially for commercial applications. That is another I reason I avoid MySQL - the license situation is simply too unclear and vague for me.
我仍然不确定GPL许可证何时强迫我购买商业许可证 - 尤其是商业应用程序。这是我避免使用MySQL的另一个原因 - 许可证情况对我来说太不清楚和模糊。
PostgreSQL is more complicated to setup in an environment where you need a true cluster with load balancing read and write statements.
在需要具有负载平衡读写语句的真正集群的环境中设置PostgreSQL更加复杂。
High availability (i.e. a spare server that takes over when the main server dies) is - especially with 9.x - just as easy as with MySQL.
高可用性(即主服务器死机时接管的备用服务器)是 - 尤其是使用9.x - 就像使用MySQL一样简单。
In terms of speed there is probably not much difference between them. Any of them can be fast and any of them can be slow. It depends on how you use it and the characteristics of your workload (PostgreSQL seems to be faster with high concurrent reads and writes - but this might have changed with MySQL 5.5 and the improved InnoDB engine).
就速度而言,它们之间可能没有太大区别。它们中的任何一个都可以很快,其中任何一个都可能很慢。这取决于你如何使用它以及你的工作负载的特性(PostgreSQL似乎更快,高并发读写 - 但这可能已经改变了MySQL 5.5和改进的InnoDB引擎)。
Firebird is very powerful in terms of SQL features as well (AFAIK it was the first open source DBMS to support recursive common table expression).
Firebird在SQL功能方面也非常强大(AFAIK它是第一个支持递归公用表表达式的开源DBMS)。
My biggest concern with Firebird is the cluttered documentation. Due to licensing issues there is no single large manual, but it is a collection of the original Interbase manuals plus the release notes for each version. So if you need to check a certain syntax you start with the Interbase manual, then check the release notes for FB 1.5, then FB 2.0, then FB 2.1. A bit clumsy, but the team is working on that and the documentation is improving (still can't match the PostgreSQL or MySQL manual).
我对Firebird的最大担忧是杂乱的文档。由于许可问题,没有单一的大型手册,但它是原始Interbase手册的集合以及每个版本的发行说明。因此,如果您需要检查某种语法,请从Interbase手册开始,然后查看FB 1.5的发行说明,然后查看FB 2.0,然后查看FB 2.1。有点笨拙,但团队正在努力,文档正在改进(仍然无法匹配PostgreSQL或MySQL手册)。
I'm not a big fan of ORMs anyway, and I have never used PostgreSQL with .Net as I only use Java. So I cannot comment on that
无论如何,我不是ORM的忠实粉丝,我从未使用过PostgreSQL和.Net,因为我只使用Java。所以我不能对此发表评论
#2
2
NHibernate is a popular ORM which I recommend, although it has a fairly steep learning curve at first. It supports a number of DBMSs, including PostgreSQL and Firebird from your list, and of course MySQL - any reason this is not on your list? - it works very well with .Net.
NHibernate是我推荐的流行ORM,虽然它起初有一个相当陡峭的学习曲线。它支持许多DBMS,包括列表中的PostgreSQL和Firebird,当然还有MySQL - 这不在你的列表中吗? - 它与.Net的效果非常好。
If stability and speed are your only requirements then you will be fine with either MySQL (Community Edition) or PostgreSQL - the debate really begins when you have to consider high-availability or high-scalability scenarios, but this won't be an issue if it's a small app.
如果稳定性和速度是您唯一的要求那么您可以使用MySQL(社区版)或PostgreSQL - 当您必须考虑高可用性或高可扩展性方案时,辩论才真正开始,但如果不考虑这个问题,这是一个小应用程序。
I have no experience with Firebird (nee InterBase) or MariaDB, so can't comment.
我没有使用Firebird(nee InterBase)或MariaDB的经验,因此无法发表评论。
#1
6
I prefer PostgreSQL over MySQL any time. PostgreSQL has more features when it comes to SQL statements (windowing functions, recursive common table expressions) better support for constraints and indexing (e.g. partial and function based indexes).
我喜欢PostgreSQL而不是MySQL。 PostgreSQL在SQL语句(窗口函数,递归公用表表达式)方面具有更多功能,可以更好地支持约束和索引(例如,基于部分和函数的索引)。
And I'm still unsure about when the GPL license forces me to buy a commercial license - especially for commercial applications. That is another I reason I avoid MySQL - the license situation is simply too unclear and vague for me.
我仍然不确定GPL许可证何时强迫我购买商业许可证 - 尤其是商业应用程序。这是我避免使用MySQL的另一个原因 - 许可证情况对我来说太不清楚和模糊。
PostgreSQL is more complicated to setup in an environment where you need a true cluster with load balancing read and write statements.
在需要具有负载平衡读写语句的真正集群的环境中设置PostgreSQL更加复杂。
High availability (i.e. a spare server that takes over when the main server dies) is - especially with 9.x - just as easy as with MySQL.
高可用性(即主服务器死机时接管的备用服务器)是 - 尤其是使用9.x - 就像使用MySQL一样简单。
In terms of speed there is probably not much difference between them. Any of them can be fast and any of them can be slow. It depends on how you use it and the characteristics of your workload (PostgreSQL seems to be faster with high concurrent reads and writes - but this might have changed with MySQL 5.5 and the improved InnoDB engine).
就速度而言,它们之间可能没有太大区别。它们中的任何一个都可以很快,其中任何一个都可能很慢。这取决于你如何使用它以及你的工作负载的特性(PostgreSQL似乎更快,高并发读写 - 但这可能已经改变了MySQL 5.5和改进的InnoDB引擎)。
Firebird is very powerful in terms of SQL features as well (AFAIK it was the first open source DBMS to support recursive common table expression).
Firebird在SQL功能方面也非常强大(AFAIK它是第一个支持递归公用表表达式的开源DBMS)。
My biggest concern with Firebird is the cluttered documentation. Due to licensing issues there is no single large manual, but it is a collection of the original Interbase manuals plus the release notes for each version. So if you need to check a certain syntax you start with the Interbase manual, then check the release notes for FB 1.5, then FB 2.0, then FB 2.1. A bit clumsy, but the team is working on that and the documentation is improving (still can't match the PostgreSQL or MySQL manual).
我对Firebird的最大担忧是杂乱的文档。由于许可问题,没有单一的大型手册,但它是原始Interbase手册的集合以及每个版本的发行说明。因此,如果您需要检查某种语法,请从Interbase手册开始,然后查看FB 1.5的发行说明,然后查看FB 2.0,然后查看FB 2.1。有点笨拙,但团队正在努力,文档正在改进(仍然无法匹配PostgreSQL或MySQL手册)。
I'm not a big fan of ORMs anyway, and I have never used PostgreSQL with .Net as I only use Java. So I cannot comment on that
无论如何,我不是ORM的忠实粉丝,我从未使用过PostgreSQL和.Net,因为我只使用Java。所以我不能对此发表评论
#2
2
NHibernate is a popular ORM which I recommend, although it has a fairly steep learning curve at first. It supports a number of DBMSs, including PostgreSQL and Firebird from your list, and of course MySQL - any reason this is not on your list? - it works very well with .Net.
NHibernate是我推荐的流行ORM,虽然它起初有一个相当陡峭的学习曲线。它支持许多DBMS,包括列表中的PostgreSQL和Firebird,当然还有MySQL - 这不在你的列表中吗? - 它与.Net的效果非常好。
If stability and speed are your only requirements then you will be fine with either MySQL (Community Edition) or PostgreSQL - the debate really begins when you have to consider high-availability or high-scalability scenarios, but this won't be an issue if it's a small app.
如果稳定性和速度是您唯一的要求那么您可以使用MySQL(社区版)或PostgreSQL - 当您必须考虑高可用性或高可扩展性方案时,辩论才真正开始,但如果不考虑这个问题,这是一个小应用程序。
I have no experience with Firebird (nee InterBase) or MariaDB, so can't comment.
我没有使用Firebird(nee InterBase)或MariaDB的经验,因此无法发表评论。