像MySQL这样的开源数据库是否可以支持我的网站加载?

时间:2008-12-29 21:21:13

标签: .net mysql database open-source

我即将开始开发一个产品(在.NET中),我正在评估开源数据库引擎,以避免将许可成本添加到我的产品的总体成本中。

你知道哪些是有效的? MySQL是一个很好的选择吗?它可以支持哪种网站加载?

您是否有在现实生活中使用开源数据库的经验?

或者我只需要使用Oracle或SQL Server来开发强大的产品吗?

18 个答案:

答案 0 :(得分:17)

MySQL足以让Flickr,Facebook,维基百科,谷歌和YouTube使用它(维基说) - 我会说它们每个都能提供超出你可能达到的负载。我相信WordPress.com--四百万+博客(stats),包括CNN,Time等博客 - 也使用MySQL。

Oracle / MSSQL绝对不需要开发强大的产品。

答案 1 :(得分:7)

这个维基百科链接应该有所帮助,它比较了大多数大型关系数据库。 http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems假设您正确编写代码,Mysql应该可以正常运行,这就是维基百科运行的内容,因此如果配置正确并且在足够好的硬件/集群设置上运行,应该支持几乎所有应用程序。

答案 2 :(得分:5)

这是一个难以回答的问题。应用程序的性质,数据库交互的性质和数量。我可以说MySQL和PostgreSQL在大多数情况下都可以和任何DBMS一样工作。

答案 3 :(得分:3)

MySQL并不像你想象的那么便宜。

使用MySQL的大型组织花费了大量资源来保持其运行,并且经常需要开发自己的扩展。 MySQL内部人士最近发表了几篇关于其产品质量差的文章。多年来我一直是MySQL的用户,在SUNW所有权变更后,发布质量急剧下降。

我意识到MySQL可以被优化并且运行良好,但我不是dba,也不能在我的所有项目上都有dba。我有几个非常复杂的查询,有时会导致系统内存不足。我目前正在将我的系统迁移到SQL Server Express。 SQL Server Express上的测试查询运行速度明显快于MySQL运行速度。如果您在数据库方面不是很强大并且需要一个强大而快速的系统,我就不会使用MySQL。 SQL Server Express更适合具有数据库中途知识的开发人员。他们已经自动化并且性能调整了许多你必须在MySQL上手动完成的事情。

另一方面,如果您对数据库非常满​​意,可能需要考虑使用PostgresSQL。它是开源的。它不像MySQL那样友好,但从我粗略的理解来看,它更强大,更稳定。

底线 - MySQL曾经是一个不错的选择,但将SQL Server Express和PostgresSQL视为更好的当前替代品。

编辑:

这里有一些参考文献。还有另外两个非常严厉的 - 但我让他们脱离了reddit。

monty-says

was it a good move

destroying mysql

kick in the teeth

criticism

random forum post

what's going on

答案 4 :(得分:2)

MySql应该可以满足您的需求......

它适用于很多很多企业 另请注意,它有很多支持,熟悉它的开发人员,仍处于开发阶段,等等。请不要再看了。

答案 5 :(得分:2)

维基百科(imho是迄今为止开发的最好的网络世界之一)在MySQL上运行,所以它不会是坏事。我很高兴能够针对任何适合项目需要的数据库平台进行编码,而且有一些有趣的MSSQL功能,我真的可以获得很多里程碑,MySQL就是我所有的开源软件包都运行起来的。我不能说我对这个设置有任何抱怨。如果您可以在PostgreSQL和MySQL之间进行选择,我会说PostgreSQL路由,因为如果您深入了解存储过程和函数开发,PostgreSQL将为您提供更强大的功能集。

答案 6 :(得分:2)

这完全取决于您在数据库中寻找的内容。实际上,您的数据集有多大?你需要什么样的负载?您是否需要群集和/或分区?你想要一个全职的DBA吗?你是否需要在vanilla SQL上获得任何扩展?

应用程序是真正的“绿色领域”推出还是进入已经拥有现有基础架构/员工以支持现有数据库的环境?

MySQL已经达到了能够处理你想要反对它的大多数事情的程度,但是“自由”和“可以完成工作”本身并不足以做出决定。

答案 7 :(得分:1)

我同意ceejayoz,mysql是一个成熟的DBMS。 没有多余的装饰,没有限制,快速点亮,容错,并且可以根据需要提供强大的功能 绝对不仅仅是机会。

尽管开源上瘾,但我必须指出mysql是根据GPL许可的。

您打算在GPL兼容许可下发布项目吗?这是一个经常被忽视的要求。

修改
我得到了一些批评我的准时,我不得不更好地解释我的立场

关于将封闭源代码链接到GPL的GPL的参考文献 http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#MereAggregation

你应该阅读常见问题,特别是当它说

...管道,套接字和命令行参数是通常在两个独立程序之间使用的通信机制。因此,当它们用于通信时,模块通常是单独的程序。 但如果沟通的语义足够密切,则交换复杂的内部数据结构,也可以作为将两个部分视为合并成更大程序的基础

在3.80版本中,当mysql接口库从LGPL切换到GPL时,我已经被咬了。我们,我们的法律部门与MysqlAB进行了讨论,如果我在Sun获得之前正确记住了公司的名称,那么他们给我们的选项是获得非GPL商业许可证或者仍然坚持使用3.80版本图书馆。

顺便说一下.net连接器是GPL,在下载页面中明确说明了 http://dev.mysql.com/downloads/connector/net/5.2.html
而且我不认为你,正如我所包含的其他人一样,通过原始tcp通信和可用的连接器,可以找到与服务器通信的有用信息。

mysql%php上的另外两个词:php license和mysql license彼此不兼容 之前的Sun和MysqlAB必须插入一个license exception为php和其他开源项目量身定制,以允许php支持mysql。这是一个漫长而充满激情的dia骂,我对结果很失望,我们很有机会在GPL下发布php。

答案 8 :(得分:1)

我已经将一个大型的开发从SQL迁移到PostGreSQL(出于与你类似的原因)并且令人惊喜。

我发现有一些警告:

  • 期待一些围绕存储过程的学习曲线(PostGreSQL中的'函数')。如果您熟悉Oracle的plsql,这可能不是什么大问题。
  • npgsql .Net连接器存在一些稳定性问题(特别是.Net 2.0)。但是,开发人员社区是活跃的,并且对查询和问题做出响应。 (有更稳定的商用连接器可用)

(由于我的经验以及在开发可以支持大量数据库的代码库的过程中,我发现最好从查询语言中删除大部分并非所有逻辑。方法PostGreSQL已经取得了足够的进展,并且学习曲线并不繁​​琐)

答案 9 :(得分:1)

当您在.Net中开发时,您可能会发现MS SQL Server很有用。

您可以编写CLR存储过程,这些过程对于构建来自多个来源的数据的树视图非常有效。

Express Edition with Advanced Services也是免费的。

该版本包含非常好的报告服务。

MySQL作为数据库引擎也非常好,快速且免费,但是因为你已经在使用.Net,我会首先考虑MSSQL。

答案 10 :(得分:1)

关于MySQL和GPL的说明:我相信如果您没有分发应用程序的二进制文件(即,您的产品是仅托管并且未部署到您的客户端的Web应用程序),那么您可以使用GPL许可证而无需你的申请也是开源的。

答案 11 :(得分:1)

另请注意,MySQL .Net客户端库是GPL编辑的。如果您使用它,则必须根据GPL许可证发布您的应用程序。并且您不得将MySQL与您的产品一起分发。

或者你可以购买MySQL,但是优于MSSQL / Oracle的优势消失了。

或者您可以使用直接与MySQL连接的3p客户端库而不使用GPL库。

总而言之,不是一个简单的决定。三思而后行。

答案 12 :(得分:1)

据我所知,SQL Express是免费的。它可能具有标准SQL Server的一些缺失功能,但它允许您将其与您的产品一起分发,并且您的客户可能会在需要时向上移动。

答案 13 :(得分:0)

略有异常的回答(对于mysql和维基百科中显示的兴趣):

以下是维基百科服务器布局图的链接。

http://meta.wikimedia.org/wiki/Server_layout_diagrams

取自:

http://en.wikipedia.org/wiki/Wikipedia#Software_and_hardware

答案 14 :(得分:0)

如果您只是担心许可成本,那么SQL Server的免费版本非常强大。这涉及到规模限制,但是如果你长大了,那么你可能还可以获得足够的收入以支付付费版本。

答案 15 :(得分:0)

我已经使用MySQL和Postgres超过五年了,两者都很好。但请注意,MySQL vs Postgres是Linux vs Windows等神圣的火焰之战。

对于大多数日常用途,两者都应该没问题。请注意,群集,热备份等高级功能可能需要付出努力/研究才能设置。

Postgres在语法和某些功能方面更像“类似Oracle”,实际上,它偶尔被称为“穷人的甲骨文”。 MySQL我不知道要比较什么。

在这两者中,Postgres长期以来一直被认为更强大,而MySQL - 更快,但是,这两种优势现在都有些争议。

另请注意,虽然Wikipedia和Flickr确实在运行MySQL,但没有人说他们的后端需要多少实际的MySQL服务器。

可能有许多功能,其中一个相互之间错过/实现以及商业数据库。如果您要指定您的特定需求(群集,触发器,序列,ACID兼容性,良好的可扩展性?),它可能会影响您最好使用哪个数据库。

答案 16 :(得分:0)

Oracle还有一个名为Oracle XE的免费版本。

答案 17 :(得分:0)

如果您正在开发待售产品,MYSQL不是免费的。使用该程序释放数据库的许可成本相当高。看看Firebird吧。功能强大,免费,除了完整的数据库服务器外,还有一个小型版本。