mysql语句对索引的操作

前言

在日常的开发工作中,对sql进行优化是很有必要的,而优化sql查询的一种方法就是添加索引,来优化慢sql

创建或添加索引可以使用如下语句。

一、使用ALTER TABLE语句创建索引。

语法如下:

1.PRIMARY KEY(主键索引
mysql>ALTER TABLE 表名 ADD PRIMARY KEY ( 字段 )
2.UNIQUE(唯一索引)
mysql>ALTER TABLE 表名 ADD UNIQUE (字段 )
3.INDEX(普通索引)
mysql>ALTER TABLE 表名 ADD INDEX index_name ( 字段 )
4.FULLTEXT(全文索引)
mysql>ALTER TABLE 表名 ADD FULLTEXT ( 字段 )
5. 多列索引
mysql>ALTER TABLE 表名 ADD INDEX index_name ( 字段1, 字段2, 字段3 )

让我们实际测试一下:
在这里插入图片描述
我们在表sales中添加了一个多列索引,索引名为:index_name,栏位:(sales_id,customer_id)
在这里插入图片描述
可以看到该表目前有2个索引,一个主键索引、一个多列索引,说明我们索引添加成功

二、使用CREATE INDEX语句对表增加索引。

能够增加普通索引和UNIQUE索引两种。其格式如下:

// 普通索引
create index 索引名 on table_name (column_list) ;

//唯一索引
create unique index 索引名 on table_name (column_list) ;

说明:table_name、index_name和column_list具有与ALTER TABLE语句中相同的含义,索引名不可选。

另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。

同样的让我们实际测试一下:

在这里插入图片描述
让我们看看效果:
在这里插入图片描述
三、删除索引。

删除索引可以使用ALTER TABLE或DROP INDEX语句来实现。DROP INDEX可以在ALTER TABLE内部作为一条语句处理,其格式如下:

drop index 索引名 on 表名;

alter table 表名 drop index 索引名;

alter table 表名 drop primary key ;

其中,在前面的两条语句中,都是根据表中的索引名,来删除表中的索引项(包括索引+索引字段)

而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。

如果从表中删除某列,则索引会受影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。

猜你喜欢

转载自blog.csdn.net/Ghoul___/article/details/126580940