RCI*_*CIX 7 database performance data-structures
如果数据库可以支持多达数百万条记录,那么所有这些数据是如何组织的,以便查询可以在合理的时间内执行?
一个完整的答案是众多书籍和论文的主题;-)
但是,基本答案是所有现代RDBMS都有一些特性:首先,它们具有高效的查询优化器.这找到了一个很好的(并不总是最好的)路径来回答提供的查询.当然,这实际上可以做更多的事情来帮助复杂的问题而不是简单的问题.
其次,它们以易于搜索的结构化格式存储数据.没有聚簇索引的数据称为堆,这通常对搜索不太有效,但它仍然是结构化数据.数据通常在其上具有聚集索引,逻辑上对数据进行排序.(有些人认为它在物理上对数据进行排序.这有一定的道理,但并非绝对正确.Itzik Ben Gan amoungst其他人有一篇很好的文章揭穿了这一信念).
除聚簇索引外,通常还使用非聚簇索引.这些就像书中的索引一样,它可以帮助告诉查询优化器在哪里查找所请求的数据,或者在某些特定情况下,索引本身可能具有所需的所有数据.
这当然是一个严重而可怕的过度简化.如果您想深入了解,请准备好在数据库理论中追求PHD.要获得一般性的理解,您可以查看有关数据库内部的书籍.特别是对于SQL Server,SQL Server 2008 Internals有很多关于此主题的信息.