数据库索引好比是一本书前面的目录,能加快数据库的查询速度。一般数据库默认都会为主键生成索引,这样的话,如果执行
select * from tb where id=xx;通过id来索引数据的话,就用到了索引
但是如果不是通过ID索引数据,而表中的数据有非常多的话,索引可以大大提高查询速度,节约内存
创建普通索引
CREATE INDEX index_name ON table(字段名称(length));
DROP INDEX [indexName] ON mytable;
ALTER mytable ADD INDEX [indexName] ON (username(length))
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX [indexName] (username(length))
);
- 唯一索引
与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值(注意和主键不同)
CREATE UNIQUE INDEX indexName ON mytable(username(length))
ALTER table mytable ADD UNIQUE [indexName] (username(length))
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
UNIQUE [indexName] (username(length))
);
DROP INDEX [indexName] ON mytable;
显示索引信息
你可以使用 SHOW INDEX 命令来列出表中的相关的索引信息。可以通过添加 \G 来格式化输出信息。
尝试以下实例:
mysql> SHOW INDEX FROM table_name