美文网首页
Msql(4)-四种索引

Msql(4)-四种索引

作者: StayHungriest | 来源:发表于2020-03-14 21:44 被阅读0次

    建议一张表建立索引不超过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)-四种索引

          本文链接:https://www.haomeiwen.com/subject/tobnshtx.html