MySQL索引不会被用到的情况汇总索引不会被用到的情况汇总
MySQL中索引的类型中索引的类型
一般可分为四类:
普通索引:最普通的索引
唯一索引:索引列的值必须唯一,但允许有空值
主键索引:一种特殊的唯一索引,不允许有空值
联合索引:索引列有多个字段,使用时需要满足最左前缀原则
普通索引普通索引
这是最基本的索引,它没有任何限制。它有以下几种创建方式:
1.创建索引
代码如下:
CREATE INDEX indexName ON mytable(username(length));
如果是 CHAR,VARCHAR 类型,length 可以小于字段实际长度;如果是 BLOB 和 TEXT 类型,必须指定 length,下同。
2.修改表结构
代码如下:
ALTER mytable ADD INDEX [indexName] ON (username(length))
创建表的时候直接指定
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX [indexName] (username(length))
);
删除索引的语法:
DROP INDEX [indexName] ON mytable;
唯一索引唯一索引
它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它
有以下几种创建方式:
CREATE UNIQUE INDEX indexName ON mytable(username(length))
修改表结构:
ALTER mytable ADD UNIQUE [indexName] ON (username(length))
创建表的时候直接指定:
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
UNIQUE [indexName] (username(length))
);
主键索引主键索引
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:
代码如下:
CREATE TABLE mytable(
评论5