一、索引的使用原则:

1、最左前缀法则(针对于联合索引查询)
在这里插入图片描述
创建的索引:

create index idx_user_pro_age_sta ON tb_user(profession,age,status);

查询语句:
在这里插入图片描述
运用explain命令可以查看以上查询是否用到索引:
第一、二、三条:几个字段都用到索引
第四、五个:就没有用索引去查
导致结果:查看explain中type字段,可以看到性能比较低

2、范围查询
在这里插入图片描述
优化:用>=、<=代替>、<

3、索引列运算

前提:phone字段添加了索引
在这里插入图片描述
执行上面的explain语句,看到type值为all;全表查询,性能很低,没有用到索引

4、字符串不加引号
在这里插入图片描述
5、模糊查询,头部模糊匹配(查询时的like语句)
在这里插入图片描述
在这里插入图片描述
上面的前一个会用到索引,后两个就不会用到索引

6、or连接的条件:or前后的字段都需要是添加了索引的
在这里插入图片描述
7、数据分布影响
在这里插入图片描述
8、SQL提示
在这里插入图片描述
use index:建议使用
ignore index:忽略指定
force index:强制使用

9、覆盖索引
在这里插入图片描述

需要查询时尽量使用能一次查询出需要信息的索引。 聚集索引,返回一列的数据 辅助索引,返回主键id和索引值

示例:
在这里插入图片描述
上面的第一个和第二个就可以查找一次得到数据
第三个就需要回表查询,才能得到全部的信息:
第一次根据索引Arm,查到Arm和id值
需要再根据id去查找gender

10、前缀索引:需要对比较长的字符串创建索引时,截取前一部分进行索引,节约索引空间
语法:

create index idx_xxx on table_name(column(n))
n:表示前几个字符串

在这里插入图片描述
11、单列索引和联合索引
在这里插入图片描述

二、索引的设计原则

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐