为什么要使用索引?
mysql官方对索引的定义为:索引(Index)是帮助Mysql高效获取数据的数据结构。
白话文:索引就像书的目录一样可以快速的定位到书的页码。
如果向mysql发出一条sql语句请求,查询的字段没有创建索引的话,可能会导致全表扫描,这样的话查询效率非常的低。

数据结构哈希算法

Hash索引
优点:通过字段的值计算的hash值,定位数据非常快。
缺点:不支持范围查询
为什么不支持范围查询?
因为底层数据结构是散列的,无法进行比较大小

哈希表(Hash table,也叫散列表),是根据关键码(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数据叫做散列表。
优点:查找可以直接根据key访问
缺点:不能进行范围查找
index=Hash(key)

数据结构平衡二叉树