0
点赞
收藏
分享

微信扫一扫

Mysql——》索引的创建与使用

晚熟的猫 2022-04-30 阅读 86

一、创建索引

1、建议字段

1)where 判断的字段
2)order 排序的字段
3) join 的(on)字段

2、不建议字段

1)区分度低的字段
例如:性别
原因:离散度太低,导致扫描行数过多

2)频繁更新的字段
原因:页分裂

3)随机无序的字段
例如:身份证、UUID
原因:无序,分裂

二、索引失效

1、索引列上使用 函数 (replace\SUBSTR\CONCAT\sum count avg)、表达式、计算(+ - * /)

explain SELECT * FROM user where id+1 = 4;

2、字符串不加引号,出现隐式转换

explain SELECT * FROM user where name = 136; 
explain SELECT * FROM user where name = '136';

3、like 条件中前面带%

explain select *from user where name like 'wang%'; 
explain select *from user where name like '%wang';

4、负向查询:not like

--  NOT LIKE 不能使用索引
explain select *from user where user not like 'wang'

-- != (<>)和 NOT IN 在某些情况下可以使用索引
explain select *from employees where emp_no not in (1) ;
explain select *from employees where emp_no <> 1;

三、索引个数

索引的个数不要过多。
原因:浪费空间,更新变慢。

四、单列索引、联合索引

创建复合索引,而不是修改单列索引

举报

相关推荐

0 条评论