索引的数据结构?
答:通常索引的数据结构是B+树,比较小众的也有Hash结构,BitMap等。
Mysql数据库不支持BitMap索引。
索引的数据结构让检索更高效:
生成索引,建立二叉查找树进行二分查找;
生成索引,建立B-Tree结构进行查找;
生成索引,建立B+-Tree结构进行查找(mysql);
生成索引,建立Hash结构进行查找;
二叉查找树
特点:左子树的值均小于父节点,右子树的值均大于父节点;每个索引的存储块,存储的是关键字,指向子树的指针;使用二分查找。
时间复杂度:O(logn),查询效率很高
缺点:
1.数据库的数据可能面临增加和删除,慢慢的树就会演进成为一个线性二叉树。
2.每一次查找树节点,都会进行一次IO操作,当数据多的时候,性能也会降低。