索引是对数据库表中一个或多个列的值进行排序的数据结构,用于协助快速查询、更新数据库表中数据。索引的实现通常使用B_TREE及其变种。
1). 索引的底层实现原理和优化
在数据结构中,我们最为常见的搜索结构就是二叉搜索树和AVL树(高度平衡的二叉搜索树,为了提高二叉搜索树的效率,减少树的平均搜索长度)了。然而,无论二叉搜索树还是AVL树,当数据量比较大时,都会由于树的深度过大而造成I/O读写过于频繁,进而导致查询效率低下,因此对于索引而言,多叉树结构成为不二选择。特别地,B-Tree的各种操作能使B树保持较低的高度,从而保证高效的查找效率。
口语化描述: 无论时二叉树还是AVL树, 当数据两比较大的时候都会因为树的高度过大而造成io读写过于频繁,导致查询效率低下,解决方法就是多叉树。 B-Tree的各种操作能使树保持较低的高度,从而保证高效查询。
一棵m阶的B-tree应满足的性质:
B-tree中,每个结点包含:
1、本结点所含关键字的个数;
2、指向父结点的[指针];
3、关键字;
4、指向子结点的指针;