MySQL索引概述

作者: 右耳菌 | 来源:发表于2022-09-25 22:18 被阅读0次

    1. 管理索引的语法

    • 查看表存在的索引
    show index from table_name
    
    • 创建索引
    alter table table_name ADD INDEX index_name (key_name);
    alter table table_name ADD FULLTEXT index_name (key_name);
    alter table table_name ADD INDEX index_name (key_name);
    
    • 删除索引
    alter table table_name DROP INDEX index_name;
    

    注:还有一种通过 create index 和 drop index 语法,原理一样,不再赘述。


    2. 索引分类

    • 按索引实现方式划分

      • Btree 一般用这个
      • Hash 只是内部的实现
    • 按功能划分

      • 普通索引: 单纯为了加快查询速度。全文索引:针对text字段类型加索引。
      • 唯一索引: 加快查询速度,且约束该列的值不能重复。
      • 主键索引: 和唯一索引功效类似,但是一张表只能有一个主键索引,而唯一索引有多个。

    3. 索引相关的概念

    • 聚集索引(聚簇索引)
      InnoDB表都有一个称为聚集索引的特殊索引(默认主键,没有则选唯一键,都没有则选择隐式的rowid键)

    • 二级索引(非聚簇索引)
      所有非聚集索引,都称为二级索引。

    • 单列索引
      索引只涉及一个列

    • 多列索引(复合索引、联合索引、组合索引)
      索引涉及多个列(最多16列)

    • 覆盖索引
      这不是一种索引,指的这种场景:“查询语句所需要的列,被包含在查询条件中的索引列里边”
      例: select count(a.user_id) from tb_users where a.user_id <1000


    如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~

    相关文章

      网友评论

        本文标题:MySQL索引概述

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