MySQL 索引

64 阅读1分钟

索引可以大大提高MySQL的检索速度,同时却会降低更新表的速度(INSERT、UPDATE和DELETE)。

单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。

组合索引,即一个索引包含多个列。

普通索引,最基本的索引,它没有任何限制。

唯一索引(UNIQUE),索引列的值必须唯一(除null外),但允许有空值。如果是组合索引,则列值的组合必须唯一。

1、创建索引

 CREATE INDEX index_name ON table_name(column_name(length));

 CREATE UNIQUE INDEX index_name ON table_name(column_name(length));

2、添加、修改索引

 ALTER TABLE table_name ADD INDEX index_name(column_name);

 ALTER TABLE table_name ADD UNIQUE [index_name] (column_name(length));
 ALTER TABLE table_name ADD PRIMARY KEY (column_name);     添加一个主键,索引值唯一,且不能为NULLALTER TABLE table_name ADD FULLTEXT index_name (column_name);    索引为 FULLTEXT ,用于全文索引。

3、创建表时,直接指定

 CREATE TABLE table_name(

     ID INT NOT NULL, 

     username VARCHAR(16) NOT NULL, 

     INDEX [index_name] (column_name(length)) 

 );

 CREATE TABLE table_name(

     ID INT NOT NULL, 

     username VARCHAR(16) NOT NULL, 

     UNIQUE [index_name] (column_name(length)) 

 ); 

4、删除索引(all)

DROP INDEX [indexName] ON table_name;

5、显示索引(all)

SHOW INDEX FROM table_name; \G