索引概述

在MySQL中,索引由数据表中一列或多列组合而成,创建索引的目的是为了优化数据库的查询速度。其中,用户创建的索引指向数据库中具体数据所在位置。当用户通过索引查询数据库中的数据时,不需要遍历所有数据库中的所有数据。这样,大幅度提高了查询效率。

MySQL索引概述

1.索引是一种将数据库中单列或者多列的值进行排序的结构。应用索引,可以大幅度提高查询的速度。
2.用户通过索引查询数据,不但可以提高查询速度,也可以降低服务器的负载。
3.应用MySQL数据库时,并非用户在查询数据的时候,总需要应用索引来优化查询。
4.整体来说,索引可以提高查询的速度,但是会影响用户操作数据库的插入操作。

MySQL索引分类

MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。

创建索引

创建索引是指在某个表中至少一列中建立索引,以便提高数据库性能。其中,建立索引可以提高表的访问速度。本节通过几种不同的方式创建索引。其中包括在建立数据库时创建索引、在已经建立的数据表中创建索引和修改数据表结构创建索引。

在建立数据表时创建索引

在建立数据表时可以直接创建索引,这种方式比较直接,且方便、易用。

基本语法结构如下:

create table table_name(   属性名 数据类型[约束条件], 属性名 数据类型[约束条件] …… 属性名 数据类型 [UNIQUE | FULLTEXT | SPATIAL ]  INDEX }KEY [别名]( 属性名1 [(长度)] [ASC | DESC]) );

例子:

普通索引

create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
index index_no(no)
)
show index from info; 查看索引

唯一索引

create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
unique index index_no(no)
);

全文索引

create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
fulltext index index_no(no);

多列索引

create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
key index_no_name(no,name)
);

在已建立的数据表中创建索引

在MySQL中,不但可以在用户创建数据表时创建索引,用户也可以直接在已经创建的表中,在已经存在的一个或几个字段创建索引。

其基本的命令结构如下:

CREATE [UNIQUE | FULLTEXT |SPATIAL ] INDEX index_name
ON table_name(属性 [(length)] [ ASC | DESC]);

例子:

普通索引

create index index_name
on t_dept(name);

唯一索引

create unique index index_name
on t_dept(name);

全文索引

create fulltext index index_name
on t_dept(name);

多列索引

create index index_name_no
on t_dept(name,no)

修改数据表结构添加索引

修改已经存在表上的索引。可以通过ALTER TABLE语句为数据表添加索引

基本结构如下: 

ALTER TABLE table_name ADD [ UNIQUE | FULLTEXT |SPATIAL ] INDEX index_name(属性名 [(length)] [ASC | DESC]);

例子:

普通索引

alter table t_dept
add index index_name(name);

唯一索引

alter table t_dept
add unique index index_name(name);

全文索引

alter table t_dept
add fulltext index_name(name);

多列索引

alter table t_dept
add index index_name_no(name,no);

删除索引

删除索引

在MySQL中,创建索引后,如果用户不再需要该索引,则可以删除指定表的索引。因为这些已经被建立且不常使用的索引,一方面可能会占用系统资源,另一方面也可能导致更新速度下降,这极大地影响了数据表的性能。所以,在用户不需要该表的索引时,可以手动删除指定索引。其中删除索引可以通过DROP语句来实现。

基本的命令如下:

DROP INDEX index_name ON table_name;

  • 版权声明:文章来源于网络采集,版权归原创者所有,均已注明来源,如未注明可能来源未知,如有侵权请联系管理员删除。

发表回复

后才能评论