【数据库】MySQL如何添加索引

1.使用ALTER TABLE语句创建索性

应用于表创建完毕之后再添加。

1.1语法
ALTER TABLE 表名 ADD 索引类型 (unique,primary key,fulltext,index)[索引名](字段名)
1.2应用
-- 1.添加PRIMARY KEY(主键索引):
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 

-- 2.添加UNIQUE(唯一索引) :
ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 

-- 3.添加INDEX(普通索引) :
ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

-- 4.添加FULLTEXT(全文索引) :
ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 

-- 5.添加多列索引:
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
1.3说明
  • ALTER TABLE可用于创建普通索引、UNIQUE索引和PRIMARY KEY索引3种索引格式。

  • 创建多列索引时,各列之间用逗号分隔。

  • 索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。

  • ALTER TABLE允许在单个语句中更改多个表,因此可以同时创建多个索引。

2.使用CREATE INDEX语句对表增加索引

用于建表时创建索引,CREATE INDEX可用于对表增加普通索引或唯一索引

2.1语法
CREATE INDEX [索引名] ON [表名](字段名(length)); 

如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。

2.2应用
-- 1.添加普通索引
CREATE INDEX index_name ON `table_name` ( `column` )

-- 2.添加唯一索引
CREATE UNIQUE INDEX index_name ON `table_name` ( `column` )
2.3说明
  • index_name 索引名不可选,必须指定。

  • 不能用CREATE INDEX语句创建PRIMARY KEY索引

3. 索引的类型

  • PROMARY KEY(主键索引):不允许出现相同的值
  • UNIQUE(唯一索引):不可以出现相同的值,可以有NULL值
  • INDEX(普通索引):允许出现相同的索引内容
  • FULLTEXT (全文索引):可以针对值中的某个单词,但效率确实不敢恭维
  • 组合索引:实质上是将多个字段建到一个索引里,列值的组合必须唯一
posted @ 2022-03-30 18:13  HZX↑  阅读(947)  评论(0编辑  收藏  举报