0
点赞
收藏
分享

微信扫一扫

【Mysql高级】【第八章 索引的创建和设计原则】

凉夜lrs 2022-02-08 阅读 48
mysql

第八章 索引的创建和设计原则

1.索引的声明和使用

https://www.bilibili.com/video/BV1iq4y1u7vj?p=128

1.1 索引分类

在这里插入图片描述


按照功能逻辑分类:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主键索引就是聚簇索引;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 创建索引

https://www.bilibili.com/video/BV1iq4y1u7vj?p=129
在这里插入图片描述

1.创建表的时候创建索引

1.1 隐式创建索引

在这里插入图片描述

1.2 显示创建索引

在这里插入图片描述

2.在已经存在的表上创建索引

在这里插入图片描述
第二种方式:
在这里插入图片描述


P130-删除索引和索引新特性:降序索引、隐藏索引


1.3 删除索引

删除索引第一种方式:

在这里插入图片描述


删除索引第二种方式:在这里插入图片描述

2.Mysql8.0 索引新特性

2.1 支持降序索引

在这里插入图片描述
在这里插入图片描述
这么建立索引的话:执行如下sql可以完全走索引

select * from ts1 order by a,b desc ;

2.2 隐藏索引

在这里插入图片描述
创建隐藏索引方式1:
在这里插入图片描述
在这里插入图片描述
创建隐藏索引方式2:
在这里插入图片描述
切换索引可见状态:
在这里插入图片描述
了解部分:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


P131-适合创建索引的11种情况

3. 索引的设计原则

在这里插入图片描述
在这里插入图片描述

3.1 哪些情况适合创建索引

1.字段的数值有唯一性限制

在这里插入图片描述

2.频繁作为where查询条件的字段

在这里插入图片描述

3.经常group by和order by的列

在这里插入图片描述
group_by :建立索引后,会根据该字段排序,所以会待在一起,分组就更快

在这里插入图片描述

(1) 对group by字段和order by字段分别建立单列索引
在这里插入图片描述
(2) 按顺序对group by字段和order by字段建立联合索引
在这里插入图片描述
(3) 反序对group by字段和order by字段建立联合索引
在这里插入图片描述
在这里插入图片描述
总结:
group by+order by的情况下,需要按照先后顺序对group by的字段和order by的字段建立联合索引;

4.update\delete语句中的where条件列

在这里插入图片描述
update
在这里插入图片描述
delete
在这里插入图片描述

P132

5.distinct字段需要创建索引

在这里插入图片描述

6.多表join时创建索引注意事项

在这里插入图片描述

7.使用数据类型小的字段创建索引

在这里插入图片描述

8. 使用字符串前缀创建索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.对散列性高的字段建立索引

在这里插入图片描述

10.使用最频繁的字段放在联合索引左侧

在这里插入图片描述
如上图sql,建立联合索引时,常用的放在左边;不过会有优化器对and条件进行优化

11. 多个字段创建索引的情况下,联合索引更优

3.2 索引数目不要太多

在这里插入图片描述

3.3 不适合创建索引的7种情况

1.where条件、group by、order by用不到的字段

在这里插入图片描述

2.小表

在这里插入图片描述

3. 有大量数据重复的字段

在这里插入图片描述
在这里插入图片描述

4.经常更新的表

在这里插入图片描述

5.不建议用无序值作索引

在这里插入图片描述

6.删除不再使用或者很少使用的索引

在这里插入图片描述

7.避免冗余和重复索引

在这里插入图片描述

在这里插入图片描述

3.4 索引创建和设计小结

在这里插入图片描述

举报

相关推荐

0 条评论