大数据库的DB是什么?

时间:2009-08-18 21:02:48

标签: sql mysql database oracle

我正在着手一个可能在短期内跨越数百万行的项目,因此我正在研究我使用的数据库,因为这肯定会成为一个问题。从我所看到的,一旦你遇到一个表的2,000,000行问题,SQL的所有版本都有问题。是否为这些大型项目推荐了一个好的数据库?

这是一个我正在讨论的网站,归档旧条目并不理想,但如果它被证明是一个我无法克服的问题就可以完成。

感谢。

14 个答案:

答案 0 :(得分:6)

如果数据库存在200万条记录问题,则不会将自己称为SQL数据库。你可以在一些拥有20亿条记录的数据库中遇到麻烦。

我有超过1.5亿条记录的mysql数据库没有问题。你需要在决定之前从数据库中找出你需要的功能,而不是思考几百万行 - 这根本不是很多。

答案 1 :(得分:4)

首先,当涉及数据库时,一百万条记录并不是很多。任何值得它的数据库应该能够处理这个问题。

在表上创建适当的索引,几乎任何数据库都能够处理这些数量的记录。我已经看到拥有数百万行的MySQL数据库工作得很好,而MySQL并不是数据库领域的重量级人物。

MS SQL服务器PostgreSQL,DB2,Progress OpenEdge,如果您创建正确的索引,几乎任何事情都可以。当您在其中放入大量数据时,MS Access(以及可能的sqlite)之类的东西可能会崩溃。

答案 2 :(得分:3)

我在MS SQL Server中拥有超过200万行的表,没有任何问题。当然,这取决于您使用该数据的方式。

请不要尝试使用MySQL这样的东西。至少从我的经验来看,它只是不允许足够的调整来提供足够高的性能。我遇到了几个(几乎)相同设置表中的大量数据的情况。 MySQL5在同一硬件上的执行速度比SQL Server慢30倍。极端的例子可能,但仍然。

我对PostgreSQL或Oracle的判断经验太少,所以我坚持不推荐使用MySQL。或访问;)

答案 3 :(得分:3)

我当前项目中的一个表中有1300万行。 MS SQL Server处理它就好了。真的,200万行是没有的。

但是,严肃地说,如果您想要一个高端数据库,请查看Oracle,Teradata和DB2。

答案 4 :(得分:3)

我们在MSSQL(2000,2005,2008)中运行了大量数亿行数据库。您的行数不是您的问题所在,它具有访问数据的特征。根据它的外观,您可能需要跨越单独的硬件进行扩展,这就是数据库服务器之间的差异真正显示的地方(价格和价格......)

答案 5 :(得分:3)

Microsoft SQL Server,MySQL,Oracle和DB2都可以毫无问题地处理数百万行。

问题在于找到一位知道如何正确设计和管理它的DBA,以便获得您正在寻找的性能特征。

答案 6 :(得分:1)

2,000,000行实际上并不多。我见过很多带>的桌子在MS SQL中,有5000万行具有可接受的性能。

恕我直言,你还远离“大数据库”

答案 7 :(得分:1)

正如其他人所说,任何体面的数据库都可以处理这种负载。我之前使用过MS SQL Server和PostgreSQL这个大小的数据库,两者都很好用。我推荐PostgreSQL,因为它是免费和开放的。我从未做过性能比较,但它似乎非常有能力。我会避免使用DB2或Oracle,因为它们非常难以使用(除非您想要支付全职DBA,在这种情况下,这样的人可能能够比其他任何解决方案更好地提高性能,尤其是Oracle)的

答案 8 :(得分:1)

我赞同richardtallent。大名称数据库系统为我们提供了大型数据库的良好工具。 (200万行什么都不是,虽然你可以看到糟糕的索引的性能问题或select语句中的选择不当,特别是如果你加入多个相似大小的表。)。它归结为成本,可用性,支持成本等方面的利弊。

我最能说到Oracle和SQL Server。 Oracle非常昂贵,需要昂贵的专用DBA才能真正使用它。它的可用性并不为人所知,但DBA或熟悉它的程序员可以在其中正常工作。它也具有很大的灵活性,有些人认为它比其他人更强大。 (我不知道这是不是真的,但我知道它肯定提供了许多不同的方法,你可以调整效率等等。)

SQL Server当然可以很好地处理大型数据集。它有一个“漂亮”的脸,往往被认为更有用,但最终的可用性是一个意见问题。它确实有更便宜的价格标签,但您的灵活性可能比Oracle差一点。您可以获得“廉价”的SQL Server dba,因为它的用户友好界面使人们可以轻松地完成一些基本的DBA任务而无需专家。但是你得到了你付出的代价(通常),如果你真的想要效率和安全,那么无论如何你都要为专家买单。

这些只是在查看数据库时需要考虑的一些事项。我确信MySQL和DB2有自己的优缺点需要权衡。

但是他们都没有一个问题,有200万行。 (我经常在一个包含数百个表的数据库中工作,其中一些表有超过5000万行,而且我看到很少有性能损失,因为DBA知道他们在做什么。)

关注编辑:由于这是一个网站,也许你最大的考虑应该是前/后的整合。例如,如果您使用ASP作为Web,则SQL Server是一种自然选择。

答案 9 :(得分:0)

对于大多数应用程序,MS SQL都可以正常工作。 MySQL将适用于较小的应用程序,但如果您真正关心数据库性能,那么为了回答您的问题,如果您能负担得起,我会选择Oracle,但如果您像我们这些不能使用80,000美元数据库的人一样,我会建议MS SQL它运作良好。通过你正在做的声音(网站)我会使用MS SQL并利用缓存。正确使用数据库往往比使用正确的数据库更重要。

答案 10 :(得分:0)

尝试查看其他大型组织,了解他们正在使用的内容。 MS对超大型数据库的概念证明是TerraServer,它运行的数据库大小为几TB。

如果您正在进行表扫描,笛卡尔积,每行昂贵的计算等,任何数据库都会遇到小数据集的问题。

要真正强调关系数据库与一个包含200万行的表,您必须在执行大量插入和更新时执行交叉表,然后您需要切换到olap数据存储区。

您还有其他描述预期工作量的内容吗?这主要是只读,读写等吗?

答案 11 :(得分:0)

正确配置,对于大多数商业数据库而言,2MM行并不是一个大问题,也可能不适用于开源数据库 - 我对MySQL等人的意见不太了解。

通过SQL我假设原始海报意味着MS SQL Server。虽然在2000版本中存在一些扩展问题,但它们似乎主要在2005年和2008年得到解决。我有一个testdb,其运行速度超过2 MM,并且运行良好。

我认为这个问题很糟糕 - 您需要描述更多信息才能获得有用的答案。数据库的大小,表的数量,公共连接的数量,是否将针对读取,写入或两者进行优化,将支持的并发用户数,复制,最终用户与数据库服务器的地理位置,硬件配置。

总的来说,我发现2005年的SQL Server很好地适用于很多情况。如果您需要能够在最低级别调整所有内容,Oracle和DB2将为您提供更好的访问和文档。

如果您的需求主要是数据仓库并且您有现金,那么我会查看Neteeza或Teradata。我是新西兰的粉丝,但我们是合作伙伴,所以我有偏见。

希望有所帮助,

特伦斯

答案 12 :(得分:0)

请记住,如果您有大量数据:

  • 索引连接表的列是非常重要的
  • 编写高效的查询可以带来巨大的差异
  • 如果您一直查询数据并且很少编写新行,您可以创建聚簇索引和物化视图,以便根据您最常使用的查询更有效地检索数据

答案 13 :(得分:0)

正如很多人已经说过的那样,如果你的数据库设计得当,那么这些记录就不是问题了。

但可能还有另一个值得考虑的方面。您希望应用程序拥有多少用户,即同时有多少用户?如果您希望获得大量用户,则还需要考虑数据库引擎或数据库设计的可伸缩性。

对于单个服务器设置,MSSql服务可能并不昂贵,但如果您需要扩展,例如,在4个CPU上运行,许可变得非常昂贵。当您推动单个服务器的限制,并且需要扩展到多个服务器时,您会怎么做? 我没有答案,除了据我所知,MS SQL Server不直接支持负载均衡。

只是一个想法