索引可以大大提高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); 添加一个主键,索引值唯一,且不能为NULL。
ALTER 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
网友评论