欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL 索引

程序员文章站 2022-06-01 22:41:46
...

MySQL 索引

作用

加快检索,类似于字典。

结构

B+Tree

hash

类型

普通索引,唯一索引

主键索引

聚簇索引,非聚簇索引

组合索引

说明:创建索引时,可指定索引列的长度,即只对列的前4个字符建立索引

create index 索引名 on 表名 (列名[长度])

缺点

  1. 需要额外空间存储
  2. 增删、索引列更新时,会索引更新,产生额外磁盘IO

建索引注意事项

  1. 避免索引列做计算/函数处理:优化器将不走索引,而会做全表扫描
  2. 避免索引列比较符 <>, !=
  3. 避免索引列比较符 is null, is not null
  4. 避免索引列比较符 in, not in
  5. 避免隐式类型转换

注意: or, like, 复合索引

or, 左右两边都建立索引才会查索引(图1为id和dept_id都存在索引的执行计划,图2为删除dept_id索引的执行计划)

like ‘%过滤’, %位于开头不走索引

复合索引时,按照定义执行列编写sql,如create idnex idx_1 on user (col1, col2);执行查询时select * from user where col1 < 100 and col2 <100;将走索引,而where col2 < 100 and col1 < 100;强不走索引
MySQL 索引
MySQL 索引

参考

https://crazyfzw.github.io/2018/07/18/RDBMS-INDEX/

https://www.cnblogs.com/yunfeifei/p/3850440.html

https://www.w3school.com.cn/sql/sql_create_index.asp