Msql(4)-四种索引

建议一张表建立索引不超过6个

一、普通索引

最基本索引,无任何限制,MyIASM中默认的b树索引。

1. 直接创建

CREATE INDEX [index_name] ON [table_name](column(length))
注:length只取前几位放索引中,建立短索引,提高效率,节省空间。

2. 修改表结构的方式添加

ALTER TABLE [table_name] ADD INDEX [index_name] ([column])

3. 建表时直接指定索引

CREATE INDEX table_name (id int not null auto_increament, title varchar(30), PRIMARY KEY(id), INDEX index_name(title))

4. 查询索引

show index from [table_name]

5. 删除索引

DROP INDEX index_name ON table_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY

二、唯一索引

与普通索引类似,不同是:索引值必修唯一,但允许有null,如果是组合索引,则列值组合必须唯。
创建于普通索引类似,只不过写为UNIQUE INDEX。

三、全文索引

MySQL从3开始支持全文索引和全文检索,FULLTEXT索引仅可用于MyISAM表,他们可以从CHAR、VARCHAR、TEXT列中创建全文索引。
对于较大的数据库,全文索引比普通索引速度更快。大容量的数据表,生成全文索引异常耗时耗空间。
CREATE FULLTEXT INDEX [index_name] ON [table_name](column(length))

ALTER TABLE [table_name] ADD FULLTEXT [index_name] ([column])

CREATE INDEX table_name (id int not null auto_increament, title varchar(30), PRIMARY KEY(id), FULLTEXT index_name(title))

四、组合索引

创建语句:

  1. ALTER TABLE article ADD INDEX index_title_time(title(50),time(109))。
  2. CREATE INDEX index_name ON table_name(column_list)
    根据‘最左前缀’相当于创建了下面两组组合索引:
    -title,time
    -title
  3. 使用到上面的索引语句
    select * from article where title='测试' and time=123456789
    select * from article where title='测试'
  4. 没有使用到上面的索引语句
    select * from article where time =1234567

你可能感兴趣的:(Msql(4)-四种索引)