2010-04-29 48 views
6

如果数据库最多可以支持数百万条记录,那么这些数据是如何组织的?这样可以在合理的时间内执行查询。数据库如何高效?

回答

8

完整的回答是许多书籍和论文;-)话题

但是,基本的答案是,所有现代RDBMS有几个特点:一是 ,他们有一个查询优化器是非常有效。这找到了回答所提供查询的好(不总是最好的)路径。当然,这实际上可以做更多的事情来帮助复杂的问题而不是简单的问题。

其次,它们以易于搜索的结构化格式存储数据。没有聚集索引的数据称为堆,这对搜索通常不太有效,但它仍然是结构化数据。数据通常会有一个聚集索引,从逻辑上对数据进行排序。 (有些人认为它在物理上对数据进行了排序,这里有一些事实,但并不完全正确,Itzik Ben Gan在其他人的文章中有一篇很好的文章揭穿了这种信念)。

除了聚簇索引,通常使用非聚簇索引。这些就像书中的索引,可以帮助告诉查询优化器在哪里查找所请求的数据,或者在某些特定情况下索引本身可能具有所需的所有数据。

这当然是一个严重和可怕的过分简单化。如果你想深入理解,准备在数据库理论中追求博士学位。对于一般级别的理解,您可以查看有关数据库内部的书籍。特别是对于SQL Server,SQL Server 2008内部包含有关此主题的大量信息。

+0

我有兴趣阅读第二个(第三个?)段落中引用的文章 – RCIX 2010-04-30 00:03:33

+0

看看SQL Server Magazine InstantDoc ID#92886 – TimothyAWiseman 2010-04-30 17:26:25