Database 数据库索引-它是如何工作的?
索引如何提高数据检索的性能Database 数据库索引-它是如何工作的?,database,performance,indexing,Database,Performance,Indexing,索引如何提高数据检索的性能 索引是如何工作的?一本书中的索引如何增加找到正确页面的难度 浏览字母列表然后转到正确的页面要比阅读每页容易得多。这是一种严重的过度简化,但一般来说,数据库索引会创建表中某些内容的另一个列表,以数据库引擎可以快速查找信息的方式排列。通过有意地组织表内容,这消除了通过扫描整个表来查找一行数据的需要,从而提高了搜索的创建效率。数据库产品(RDM),如Oracle、MySQL构建了自己的索引系统,它们为数据库管理员提供了一些控制权,但是除了人们在该领域进行研究外,没有人确切知
索引是如何工作的?一本书中的索引如何增加找到正确页面的难度
浏览字母列表然后转到正确的页面要比阅读每页容易得多。这是一种严重的过度简化,但一般来说,数据库索引会创建表中某些内容的另一个列表,以数据库引擎可以快速查找信息的方式排列。通过有意地组织表内容,这消除了通过扫描整个表来查找一行数据的需要,从而提高了搜索的创建效率。数据库产品(RDM),如Oracle、MySQL构建了自己的索引系统,它们为数据库管理员提供了一些控制权,但是除了人们在该领域进行研究外,没有人确切知道后台发生了什么,所以为什么要索引: 简单地说,数据库索引有帮助 加快数据检索速度。其他的 索引的最大好处是 服务器不必像以前那样努力工作 获取数据。他们几乎一样 作为书籍索引,提供 具有快速跳转点的数据库 在何处查找完整参考(或 以查找数据库行) 有许多索引技术,例如:
- 主索引,辅助索引
- B-树和变体(B+树,B*-树)
- 散列和变体(线性散列、螺旋等)
每个索引将索引字段单独存储、排序(通常)并保存在一个数据结构中,这使得查找正确的条目特别容易。数据库在索引中查找条目,然后将它们交叉引用到表中的条目(聚集索引和覆盖索引除外,在这种情况下,索引已经包含了所有内容)。这种交叉引用需要时间,但比扫描整个表更快(希望如此) 聚集索引是将包含所有列*的行本身与索引一起存储的地方。扫描聚集索引优于扫描非聚集非覆盖索引,因为需要的查找更少 覆盖索引是指查询只需要作为索引一部分的列,因此不需要查找行的其余部分(这通常有利于性能)
*通常排除blob/长文本列等索引为查找查询提供了最佳的数据结构。如果您的数据集发生了很大变化,那么您也可以考虑更新/重新生成索引的性能。
有很多像lucene这样的开源索引引擎可用,您可以在线搜索有关性能基准的详细信息。。一个索引重新生成的声音是什么?答案是有帮助的,而不是晦涩难懂的。删除可能是因为考虑了如何创建和使用图书索引。您应该检查此项
Alice
...
...
AZ...
Bob
Bri
...
Bza
...