2009-07-07 31 views
3

真的很大(例如,1亿行)数据库经常被打破吗?我完全不熟悉扩展任何东西,但认为也许一个数据库可以作为实际数据大块的关键,成为一个索引,可以说“哦,是的,该查询需要20,000,000-25,000,000块”,并且将查询发送到该块,跳过其余部分。这不是我需要执行的事情,但我想我会在这里要求资源指向正确的方向。问候。大型MySQL数据库如何变得高效?

+0

如果你在谈论MySQL,我认为你的意思是有1亿行的表,一个数据库可以有它所喜欢的行数,但是如果每个表只有10行,并且有1000万个表,那么它将会是非常非常高效。 – 2009-07-07 02:18:52

回答

3

他们当然可以。例如,我知道大型系统通常具有多个数据中心,这些数据中心包含他们的数据库部分以及它们之间的负载平衡。

根据我的理解,划分像您所谈论的大型数据库的一个关键概念是数据库分片。 This article可帮助您更好地了解分片如何划分数据库以更轻松地访问并减少单个服务器上的负载。

我曾经以为我需要这种类型的技术用于大约一百万行的数据库,但是当我学会了3NF和适当的数据库结构时,我修复了我可怕的实施数据库。谢谢你提醒我!我会很乐意看到你得到的其他答案。

0

大表格最大的问题是您要查询多少数据。在使用100万行后表时(如果您尝试选择整个东西,除了杀死服务器,我只犯了一次错误),使用LIMIT子句就变得极为重要。

在索引和LIMIT子句之间,只要没有试图一次访问整个数据集,MySQL表就可以非常高效地存储非常大的数据集。

0

MySQL 5.1具有table partitioning功能,可以按照您的描述(基本级别)将表格分为多个部分。但是,MySQL具有全面的性能调整功能,您需要熟悉所有这些功能,才能为每次安装选择最佳的功能。