MySQL索引分为普通索引、唯一索引、主键索引、组合索引、全文索引
(1)普通索引:create index indexName on table(column);
或者创建表时指定,create table(..., index indexName column);
(2)唯一索引:类似普通索引,索引列的值必须唯一(可以为空,这点和主键索引不同)
create unique index indexName on table(column);或者创建表时指定
CREATE TABLE t1
(
id INT NOT NULL,
name CHAR(30) NOT NULL,
UNIQUE INDEX indexName(id)
);
(3)主键索引:特殊的唯一索引,不允许为空,只能有一个,一般是在建表时指定:
CREATE TABLE t2
(
id INT NOT NULL,
name CHAR(10),
primary key(id)
);
(4)组合索引:在多个字段上创建索引,遵循最左前缀原则。
CREATE TABLE t3
(
id INT NOT NULL,
name CHAR(30) NOT NULL,
age INT NOT NULL,
info VARCHAR(255),
INDEX indexName(id,name,age)
);
(5)全文索引:主要用来查找文本中的关键字,不是直接与索引中的值相比较,像是一个搜索引擎,配合match against使用,只有MyISAM存储引擎支持FULLTEXT索引,且只有char,varchar,text上可以创建全文索引。
CREATE TABLE t4
(
id INT NOT NULL,
name CHAR(30) NOT NULL,
age INT NOT NULL,
info VARCHAR(255),
FULLTEXT INDEX indexName(info)
)ENGINE=MyISAM;