暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 中的索引

每天一个开发小知识。


我们都知道 MySQL 有索引概念。


一方面,索引能保证记录的唯一性;另一方面,索引能加快我们的查找速度。


MySQL 中的索引类型还真不少:


    alter table novel add private key (id);   # 添加主键索引
    alter table novel add unique (id); # 添加唯一索引,唯一索引和主键索引唯一的区别是唯一索引可以为空
    alter table novel add fulltext (id);     # 添加全文索引
    alter table novel add index idx_id (id); # 添加普通索引
    alter table novel add index idx_id_book_author (id,book,author); # 添加组合索引
    复制


    当我们需要删除一个索引时,使用语句:


      alter table novel drop index idx_id;       # 删除索引 idx_id
      复制


      需要特别注意的是:


      当我们使用组合索引时,where 语句中最常使用的字段名,应该放在组合索引中的第一个


      比如,我们看到以下组合索引的定义:


        alter table novel add index idx_id_book_author (id,book,author); # 添加组合索引
        复制


        那我们基本就可以判断,id,book,author 作为 where 的查询条件的频率,从大到小应该是:id > book > author


        我们还需要知道的一点是:


        触发组合索引的条件是向后匹配组合索引中的字段。


        还是看上面这个组合索引的例子,查询语句的 where 条件包括下面任何一种情况,才会触发组合索引:


        1. id

        2. id, book

        3. id, book, author


        如果是以下任何一种情况,则不会触发组合索引:


        1. book

        2. author

        3. book, author


        通过这个例子,你能理解组合索引向后匹配的机制了吧?


        每天一个开发小知识,今天你学废了吗

        文章转载自每天一个开发小知识,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论