抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

摘要:本文学习了如何使用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 使用

创建主键索引:

sql
1
alter table 表名 add primary key(字段名);

删除主键索引:

sql
1
alter table 表名 drop primary key;

2.2 唯一索引

2.2.1 定义

根据唯一约束自动生成的索引,不允许重复值。

2.2.2 使用

创建唯一索引:

sql
1
alter table 表名 add unique 索引名(字段名);

删除唯一索引:

sql
1
alter table 表名 drop index 索引名;

2.3 普通索引

2.3.1 定义

使用表中普通的列构建索引。

2.3.2 使用

创建普通索引:

sql
1
alter table 表名 add index 索引名(字段名);

删除普通索引:

sql
1
alter table 表名 drop index 索引名;

2.4 组合索引

2.4.1 定义

用多个列组合构建的索引,这多个列中的值不允许有空值。

2.4.2 使用

创建组合索引:

sql
1
alter table 表名 add index 索引名(字段名1, 字段名2, ... 字段名n);

删除组合索引:

sql
1
alter table 表名 drop index 索引名;

2.5 全文索引

2.5.1 定义

用大文本对象的列构建的索引。

2.5.2 使用

创建全文索引:

sql
1
alter table 表名 add fulltext index 索引名(字段名);

删除全文索引:

sql
1
alter table 表名 drop fulltext index 索引名;

评论