是帮助sql加快查找数据的数据结构。类似于新华字典的目录,方便和加快我们找到想要的数据。
一般用可视化操作
- -- 创建索引
- create [ UNIQUE | FULLTEXT ] index 索引名 on 表名字 ( 列1,...列n ) ;
-
- -- 查看索引
- show index from 表名;
-
- -- 删除索引
- drop index 索引名 on 表名;
| 所用数据结构 | 如何选择 |
| B+Tree | 最常用的索引类型 |
| Hash | 底层数据结构是哈希表,用于等值查询,效率比B+Tree要高 |

BTree

B+Tree


聚集索引和二级索引
以InnoDB来说,每个InnoDB表具有一个特殊的索引称为聚集索引。如果您的表上定义有主键,该主键索引是聚集索引。如果你不定义为您的表的主键时,MySQL取第一个唯一索引(unique)而且只含非空列(NOT NULL)作为聚集索引,InnoDB使用它作为聚集索引。如果没有这样的列,InnoDB就自己产生一个这样的ID值,它有六个字节,而且是隐藏的,使其作为聚簇索引。
案例


索引失效参考这篇文章(115条消息) mysql索引失效的常见9种原因详解_book多得的博客-CSDN博客_mysql索引失效的几种情况