1、索引
便于mysql高效获取数据的有序的数据结构;
2、数据结构有:
双叉树;
红黑树(双叉平衡树);
b树;
b+树;
hash;
3、现在mysql底层用的是b+树和hash(较早的版本有用b树)存储数据;
4、较为常用的是b+树而不是hash;
因为hash会有hash冲突的可能,更重要的是hash没有办法不支持范围查询;
5、b树和b+树的区别:
b树的枝干是存有索引值及对应的数据的,b+树的枝干只存储索引值(冗余),(横向存储的大小在16kb,如果存储了数据后,那树的数据存储量就会相应的变小)
想要查找一定范围内的数据,b树的实现方式是:先从根节点到叶子节点查找数据,然后再次返回根节点到另外一个叶子节点查找数据;
b+树的实现方式是:因为每个叶子节点间有指针,所以只需要在叶子节点间直接获取该范围内的数据即可;