2009-08-27 54 views

回答

4

我认为这取决于你的意思是“更好”。您应该在选择其中一个之前确定您的需求。

更快?更可靠?允许复制?可以做更复杂的查询吗? 您的应用程序是否适用于“分片”,在这种情况下,您可能需要一个可以群集并更容易管理的数据库,或者您需要一个大型链接表集合中的所有内容,在这种情况下,您可能需要良好的支持 对于许多内核和大内存。您是否有 设置了复杂身份验证,还是简单的“单用户”Web应用程序? 是二进制对象中的大部分数据,还是简单的数字和字符串? 你将如何做你的备份?

MySQL和PostgreSQL都似乎是非常有能力的数据库,都 已经在大规模成功使用,所以我建议你需要 确定应用程序的特定需求第一。

我的倾向是对PostgreSQL,但主要是因为我有 几次灾难与MySQL丢失数据几年前,我还没有来 再次信任它。 PostgreSQL在能够很容易地备份 方面一直很不错。

+0

抱歉,因为我没有告诉过你的需求...当然它必须是可靠和更快......目的是为了报告系统,但它与记录的百万.. – user149513 2009-08-27 03:36:59

+0

关于MySQL有趣的故事播放。你能扩展你的灾难故事吗? – User1 2010-05-12 23:02:42

+0

它不久前(MySQL 4也许?),我们有一个UPS失败,导致数据库服务器崩溃。我们在同一台机器上的PostgreSQL数据库是绝对好的,但是MySQL是不可恢复的。 (是的,我们有备份但仍失去了大约23小时的数据) – 2010-05-23 22:54:04

5

我已经在类似的情况下使用过,而且纯粹的数据库大小似乎不会以实质上不同的方式影响它们的缩放比例。 PostgreSQL更加完整和坚实,并且能够更好地支持复杂的查询和优化,而MySQL可以在极其简单的查询方面提高检索速度;但是这些方面与绝对尺寸问题无关。

2

那么,它最终取决于你最舒服的。根据MySQL的说法,对数据库的大小没有强加的理论限制......它取决于支持它的硬件的能力。通过使用InnoDB的行数,理论上的限制是256兆兆字节。我一直抛弃理论的原因是,你可能有一个非常小的机会,你可能会索引256TB的数据,所以这就是他们近似的数据。可能是一个限制。如果你达到最大值,你会遇到更大的问题。我认为目前正在制作的MySQL用户是YouTube和Facebook。这可能是两个最大的......而且看起来他们的表现很好。

但是再一次,如上所述。这是你最舒服的方式。

4

Postgres拥有更丰富的功能和更好的优化器;它的散列连接能力通常比连接MySQL的速度快得多。据传MySQL对于简单表扫描速度更快。您在下面使用的存储引擎也很重要。在某些时候,缩放成为两种选择之间的选择:通过购买更大的硬件来扩展规模,或者通过引入新机器来扩展规模(您可以将数据碎片化,用作从副本,或尝试主 - 主设置 - - Posgres和MySQL都为这些类型的事物提供了各种质量级别的解决方案)。表数据的

几百万行安装在一个标准服务器的内存,这些天;如果这就是你所做的一切,那么你不需要担心这些东西 - 只要优化你最喜欢的数据库,确保创建了正确的索引,一切都被缓存了(在适当的地方使用了类似memchached的东西) , 等等。

人们提到Facebook使用MySQL;这是真的。有点因为他们实际上在做的是使用数百(数千个)mysql数据库,他们全都负责自己的一小部分数据。如果你认为你可以将facebook加载到MySQL(或postgres或oracle)实例中......那么他们可能会喜欢听到你的声音;-)。

一旦你进入太字节的土地,事情变得困难。有专门的解决方案,如Vertica,Greenplum,Aster Data。有各种“nosql”数据存储,如Cassandra,Voldemort和HBase。但我怀疑你需要去这么极端。只需购买更多的RAM。