【0基础学习mysql】之索引

2022-11-20 10:52:40 浏览数 (1)

个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主

​ 特别标注:仅为自己的学习记录笔记,方便复习和加深记忆,仅供借鉴参考!

目录

索引概述

索引分类

1.普通索引

2.唯一性索引

3.全文索引

4.单列索引

5.多列索引

6.空间索引

索引的创建

1.在建立数据表时创建索引

格式

2.添加索引

1.普通索引

2.唯一索引

3.全文索引

4.单列索引

5.多列索引

3.删除索引


索引概述

索引由数据表中一列或多列组合而成,创建索引的目的就是为了优化数据库的查询速度,通过索引查询数据时,不需要遍历所有数据库中的所有数据,大幅度提高了查询效率。

索引分类

1.普通索引

不应用任何限制条件的索引,该索引可以在任何数据类型中创建。字段本身的约束条件可以判断其值是否为空或唯一。创建该类型索引后,用户在查询时,便可以通过索引进行查询。

2.唯一性索引

使用unique参数可以设置唯一索引,索引的值必须是唯一的,通过唯一索引,用户可以快速定位某条记录,主键就是一种特殊的唯一索引。

3.全文索引

使用fulltext参数可以设置全文索引。全文索引只能创建在char、varchar、或者text类型的字段上,查询数据量较大的字符串类型字段的时候使用全文查询可以提高查询速度。

4.单列索引

只对应一个字段的索引,其可以包括上述的三种索引。

5.多列索引

对应多个字段的索引,用户可以通过这几个字段进行查询,应用该索引,用户必须使用这些字段的第一个字段。

6.空间索引

使用spatlal参数可以设置空间索引,其只能建立在空间数据类型,可以提高系统获取空间数据的效率。

索引的创建

1.在建立数据表时创建索引

格式

create table 表名(字段名 数据类型[约束条件]...{字段名 数据类型[unique/fulltext/spatial] index/key [别名](字段名1[(长度)][ASC|DESC]);

index和key参数用于指定字段索引,二者选一个即可,别名可加可不加,(字段名1[(长度)][ASC|DESC])都是别名的参数,长度指的是索引的长度,asc表示升序排列,desc表示降序排列

举例

代码语言:javascript复制
create table Student(id int,name varchar(4),score int,index(id));
show create table Student;

执行结果

2.添加索引

1.普通索引

格式

alter table 表名 add index 索引名(字段名称);/create index 索引名 on 表名(字段名1);

举例

代码

代码语言:javascript复制
create table Student(id int,name varchar(4),score int);
alter table Student add index idx(name); 
show create table Student;

执行结果

2.唯一索引

格式

alter table 表名 add unique index 索引名称(字段名称);/create unique index 索引名 on 表名(字段名);

3.全文索引

格式

alter table 表名 add fulltext index 索引名称(字段名称);/create fulltext index 索引名 on 表名(字段名);

4.单列索引

格式

alter table 表名 add index 索引名称(字段名词(长度));/create index 索引名 on 表名(字段名(长度));

5.多列索引

alter table 表名 add index 索引名称(字段1,字段2...);/create index 索引名 on 表名(字段名1,字段名2...);

3.删除索引

格式

drop index 索引名 on 表名;

举例

代码

代码语言:javascript复制
create table Student(id int,name varchar(4),score int);
alter table Student add index idx(name); 
drop index idx on Student;
show create table Student;

执行结果

各位学习mysql的朋友可以联系我,互相讨论,一起进步!!!

0 人点赞