大型MySQL数据库如何变得高效?

时间:2009-07-07 02:00:56

标签: mysql database theory

真的很大(例如,1亿行)数据库经常被打破吗?我完全不熟悉scale -anything,但是认为可能有一个数据库可以作为实际数据中较大块的关键,成为一个可以说“哦,是的,该查询需要20,000,000-25,000,000块”的索引,将查询发送到该块,跳过其余部分。这不是我需要实现的,但我想在这里要求资源指向正确的方向。问候。

3 个答案:

答案 0 :(得分:3)

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

根据我的理解,像你所说的那样划分大型数据库的一个关键概念是数据库分片。 This article应该可以帮助您更好地了解分片如何分割数据库以便于访问和减少单个服务器上的负载。

我曾经以为我需要这种类型的技术用于大约一百万行的数据库,但是当我学习了3NF和正确的数据库结构时,我修复了我可怕的实现数据库。谢谢你提醒我这个!我很想知道你得到的其他答案。

答案 1 :(得分:0)

大型表的最大问题是您使用查询获取的数据量。在处理100万行表时,使用LIMIT子句变得至关重要(如果你试图选择整个事情你将会杀死服务器,我只犯了一次错误。)

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

答案 2 :(得分:0)

MySQL 5.1具有table partitioning功能,可以根据您的描述(基本级别)将表分成几个部分。但是,MySQL具有全面的性能调优功能,您需要熟悉所有这些功能,以便为每个安装选择最佳的功能。