发布者:上海IT外包来源:http://www.lanmon.net点击数:1336
蓝盟IT小贴士,来喽!
索引和我们书的目录一样,书没有目录的话,寻找知识点是很困难的。 数据库索引的作用是将包含相应数据的磁盘地址传递给目录中的页数。 那么,数据库的“目录”是怎样的呢?
常见的数据库索引有三种类型: 第一个是散列表,散列表可以散列和存储数据库索引字段,因为大家都不知道散列表。
当合理地设计散列算法时,我们可以立即找到相应数据的存储位置,然后可以立即找到该数据。 哈希索引有什么缺点? 首先,散列表相对较适合在存储器中使用,但是掉到盘中会很麻烦,特别是在扩展散列表的情况下,可以修改盘中的大量数据。 其次,散列表不能执行部分筛选。
第二个是数组索引,与上述散列表类似,但有所不同。 与散列索引一样,数组索引也是非常有效的,并且仅仅通过二分搜索就可以在有序数组中查找元素。 但是,数组索引的问题也很明显,它的插入非常麻烦,为了插入新的元素,所有后面的元素都必须向后移动。 因此,数组索引通常只使用静态数据。
秩序的排列都说过了,接下来一定是二叉树。 我们所说的二叉树当然是二叉排序树,二叉排序树对于排列,比较大的优点是容易插入。 但是,由于索引中的数据可以存在磁盘,所以若索引中的数据超过1000,则找到最终的数据可能需要10次,磁盘IO中的瓶颈是查找和旋转,效率必然下降。 因此,数据库索引使用了许多叉树,因为它们需要尽可能减少磁盘中的查找和旋转次数。 此外,在多叉树中,较常用的是b树。
分享到: