索引
索引:告诉存储引擎如何快速的找到表中的数据,当表中的数据少查询少,索引的性能可能显示不出来,因为这个时候表中的数据基本上可以缓存到内存中,就算是进行全表扫描也不会太慢,随着表中的数据越来越多,查询频率也越来越多,内存已经不能完全缓存数据的时候,索引的功能就显示出来了
实际工作中,总是忽略或者过分的强调索引,太多或者太少都会带来不好的影响
mysql支持的索引类型,mysql的索引就是告诉存储引擎如何快速的找到表中的数据,因此索引是在存储引擎层来实现的,而不是在mysql的服务器层实现的,这就决定了不同的存储引擎用的索引类型是不同的,同时不是所有的存储引擎都会支持所有的类型,即使是同一种类型的索引,在不同的存储引擎上在底层的实现上也可能不太相同
B-tree索引是最常见的索引,通常说的索引指的就是B树索引,使用的是B+树的结构来存储数据,在B+树种每一个叶子节点都包含一个指向下一个节点的叶子指针,可以方便的进行叶子节点之间的遍历
B树索引的特点
首先,B树索引是以B+树的结构来存储数据的
B树索引能够加快存储引擎的查找速度,通常情况下,索引的大小远远小于表中数据的大小,使用了B树索引之后就不用再进行全表扫描而是从索引的跟节点开始搜索索引的根节点种存放了指向下一个节点的指针
存储引擎根据这些指针向下一场进行查找,通过比较节点中的值,就能得到合适的节点,这些指针中定义了子节点中的上限和下限,最终存储引擎能够找到节点中的值是不存在的,找到符合