mysql支持的索引类型
索引的主要作用告诉存储引擎如何快速的找到我们是偶需要的数据所以mysql索引是在存储层实现的,而不是在服务器上实现的,
B-tree索引特点:
B-tree索引以B+树的结构存储数据
B-tree索引能够加快数据的查询速度,索引大小远小于表中数据大小,使存储引擎不用进行全盘扫描查找数据从索引根节点进行搜索根据指针向下搜索
B-tree索引更适合进行范围查找
在以下情况可以使用B数索引
全值匹配的查询 – id=’123456’
匹配最左前缀的查询
匹配列前缀查询 –匹配某一列开头 id like ‘123%’
匹配范围值得查询
只访问索引的查询
btree索引的使用限制:
如果不是按照索引最左列开始查找,则无法使用索引 –查询必须从索引的第一个开始
使用索引时不能跳过索引中的列 – 比如123都是索引 查询使使用了13 则只有1起作用
not in 无法使用索引
如果查询中右某个列的范围查询则其右边的所有列都无法使用索引
Hash索引
基于hash表实现的,只有查询条件精准匹配hash索引中的所有列时才能使用
索引优化策越
索引列上不能使用表达式或函数