如何在数据库索引中使用二进制搜索
Posted
技术标签:
【中文标题】如何在数据库索引中使用二进制搜索【英文标题】:How binary search is used in database indexing 【发布时间】:2012-03-15 05:41:24 【问题描述】:我知道二分查找的工作原理,但我想知道二分查找的实际用途... 我在网上搜索,发现主要用途是数据库索引,但我不明白二进制搜索如何帮助数据库索引。
【问题讨论】:
数据库索引使用b-trees,一种二叉树的泛化。这与使用二分搜索不同,尽管“分而治之”的一般思想适用于这两种情况。 【参考方案1】:二分搜索计算每一步的下一个位置(中间点)。
DB 的二叉树预计算每一步的中间点,直到到达单个项目。将所有中间点填充到树中。查询时,DBMS 会查找树。
【讨论】:
【参考方案2】:Binary search 允许您通过键快速查找记录,假设键已经排序。如果键的数量很大,则尤其如此。 32 次键读取足以在 20 亿个已排序键的集合中找到任何单个唯一键。
二分搜索之所以如此工作,是因为每次搜索尝试都会将要搜索的记录数减半。
也就是说,数据库通常使用其他类似binary tree 的数据结构,例如b-trees 或red-black trees 来执行索引。使用二叉树无需在搜索之前对键列表进行排序。
【讨论】:
【参考方案3】:只要您有一个排序列表,您就可以使用二分搜索来有效地搜索列表。数据库索引是排序数据的数据结构。
【讨论】:
以上是关于如何在数据库索引中使用二进制搜索的主要内容,如果未能解决你的问题,请参考以下文章