摘要:本文学习了如何使用DDL语句使用索引。
环境
Windows 10 企业版 LTSC 21H2
MySQL 5.7.40
1 简介
1.1 定义
索引是一个排序的列表,存储着索引的值和包含这个值的数据所在行的物理地址。
在数据十分庞大的时候,使用索引可以大大加快查询速度。这是因为使用索引后不需要扫描全表定位数据,而是通过索引表找到数据对应的物理地址然后访问数据。
1.2 作用
索引的主要功能是排序和筛选。
1.3 优缺点
优点:
- 可以快速检索,减少I/O次数,加快检索速度。
- 在分组和排序的时候如果使用索引,可以加快分组和排序。
缺点:
- 索引本身也是表,因此会占用存储空间,一般来说,索引表占用的空间的数据表的1.5倍。
- 索引表的维护和创建需要时间成本,这个成本随着数据量增大而增大。
- 构建索引会降低数据表的修改操作(删除,添加,修改)的效率,因为在修改数据表的同时还需要修改索引表。
2 操作
2.1 主键索引
2.1.1 定义
根据主键约束自动生成的索引,不允许重复值,不允许空值。
2.1.2 使用
创建主键索引:
1 | alter table 表名 add primary key(字段名); |
删除主键索引:
1 | alter table 表名 drop primary key; |
2.2 唯一索引
2.2.1 定义
根据唯一约束自动生成的索引,不允许重复值。
2.2.2 使用
创建唯一索引:
1 | alter table 表名 add unique 索引名(字段名); |
删除唯一索引:
1 | alter table 表名 drop index 索引名; |
2.3 普通索引
2.3.1 定义
使用表中普通的列构建索引。
2.3.2 使用
创建普通索引:
1 | alter table 表名 add index 索引名(字段名); |
删除普通索引:
1 | alter table 表名 drop index 索引名; |
2.4 组合索引
2.4.1 定义
用多个列组合构建的索引,这多个列中的值不允许有空值。
2.4.2 使用
创建组合索引:
1 | alter table 表名 add index 索引名(字段名1, 字段名2, ... 字段名n); |
删除组合索引:
1 | alter table 表名 drop index 索引名; |
2.5 全文索引
2.5.1 定义
用大文本对象的列构建的索引。
2.5.2 使用
创建全文索引:
1 | alter table 表名 add fulltext index 索引名(字段名); |
删除全文索引:
1 | alter table 表名 drop fulltext index 索引名; |
条