Skip to content

索引作用

相当于一本书的目录。

索引虽然可以提高效率,但是不能随意添加索引,因为索引也是数据库中的对象;

也需要进行维护,也需要不断进行维护,具有维护成本。

比如:表中的数据数据经常被修改,这样就不适合添加索引,索引需要重新排序,进行维护。

什么时候添加索引?

数据量庞大;

该字段很少进行DML操作;【因为索引也要进行维护】

该字段经常出现在where子句中;

TIP

主键和具有unique约束的字段自动会添加索引。

索引的创建

查看MySQL语句执行情况:explain + 要执行语句

创建索引

sql
create index 索引名 on 表名 (字段名)

删除索引:

sql
drop index 索引名称 on 表名

在没有创建索引前,检索素所有,并且扫描所有

img

创建后扫描方式变了

img

索引原理

索引结构:B+ tree

索引原理

先将数据中的指定字段进行排序,如:按字母的话会先按照字母进行排序,并进行分区,使用tree进行【二分法查找】查找。

因为索引创建后存储了指定字段的排序以及原字段的硬盘物理地址,并直接在硬盘进行定位。

image-20250119192306966.png

本站除转载文章或特殊说明外,均遵循 CC BY-SA 4.0 协议发布。