索引如何提高数据检索的性能?
索引的工作原理如何?
答案 0 :(得分:6)
数据库产品(RDMS)(如Oracle,MySQL)构建自己的索引系统,它们为数据库管理员提供了一些控制权,但是没有人确切知道背景会发生什么,除非人们在该领域进行研究,为什么要编制索引:
简单地说,数据库索引有帮助 加快数据检索。另一个 索引的好处是你的 服务器不必像以前那样努力工作 获取数据。它们大致相同 作为书籍索引,提供 快速跳转点的数据库 在哪里可以找到完整的参考(或 找到数据库行。)
例如,有许多索引技术:
Alice
...
...
AZ...
Bob
Bri
...
Bza
...
现在你在这个索引中有一个索引,你只存储Alice和Bob以及它们指向的块,这样用户就可以更快地访问数据.RDMS处理细节。
我不详细说明,但如果您想深入研究这些主题,我会为您提供数据库课程或者阅读这本大多数大学教授的畅销书。
答案 1 :(得分:3)
书中的索引如何增加找到正确页面的难易程度?
通过字母列表查看然后转到正确的页面比阅读每一页更容易。
答案 2 :(得分:3)
每个索引都保持索引字段分开存储,排序(通常)和数据结构,这使得查找正确的条目变得特别容易。数据库查找索引中的条目然后将它们交叉引用到表中的条目(除了聚簇索引和覆盖索引的情况,在这种情况下索引已经全部已经完成)。这种交叉引用需要时间,但比扫描整个表格更快(希望如此)。
聚簇索引是包含所有列*的行本身与索引一起存储的位置。扫描聚簇索引比扫描非聚簇非覆盖索引更好,因为需要的查找次数更少。
覆盖索引是查询只需要作为索引一部分的列的地方,因此不需要查找该行的其余部分(这通常对性能有利)。
*通常排除blob /长文本列等
答案 3 :(得分:1)
这是一个粗略的过度简化,但通常,数据库索引会创建表的某些内容的另一个列表,以数据库引擎可以快速查找信息的方式排列。通过有意识地组织表格内容,这消除了通过扫描整个表格来查找一行数据的需要,从而在搜索中创造了创造效率。
答案 4 :(得分:1)
索引为查询查询提供了最佳数据结构。如果您的数据集发生了很大变化,您也可以考虑更新/重新生成索引的性能。 有许多开源索引引擎,如lucene,你可以在线搜索有关性能基准的详细信息。