MySQL 索引
程序员文章站
2022-06-01 22:41:46
...
MySQL 索引
作用
加快检索,类似于字典。
结构
B+Tree
hash
类型
普通索引,唯一索引
主键索引
聚簇索引,非聚簇索引
组合索引
说明:创建索引时,可指定索引列的长度,即只对列的前4个字符建立索引
create index 索引名 on 表名 (列名[长度])
缺点
- 需要额外空间存储
- 增删、索引列更新时,会索引更新,产生额外磁盘IO
建索引注意事项
- 避免索引列做计算/函数处理:优化器将不走索引,而会做全表扫描
- 避免索引列比较符 <>, !=
- 避免索引列比较符 is null, is not null
- 避免索引列比较符 in, not in
- 避免隐式类型转换
注意: 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;
强不走索引
参考
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
上一篇: Vue速成--项目实战(后台管理系统)
下一篇: JSP实战————注册