• 【MySQL】索引的分类


    浅浅的了解一下索引的各种分类以及索引是如何创建和删除的。

    【正文】

    一、索引的分类

    MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。
    ● 从功能逻辑上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。
    ● 按照物理实现方式,索引可以分为 2 种:聚簇索引和非聚簇索引。
    ● 按照作用字段个数进行划分,分成单列索引和联合索引。

    1. 普通索引

    在创建普通索引时,不附加任何限制条件,只是用来提高查询效率。这类索引可以创建在任何数据类型中,其值是否唯一和非空,要由字段本身的完整性约束条件决定。建立索引后,可以通过索引进行查询,例如,在表student的字段name上建立一个普通索引,查询记录时就可以根据该索引进行查询。

    2. 唯一性索引

    使用UNIQUE参数可以设置索引为唯一性索引,在创建唯一性索引时,限制该索引的值必须是唯一的,但允许有空值,在一张数据表里可以有多个唯一索引。

    3. 主键索引

    主键索引就是一种特殊的唯一性索引,在唯一索引的基础上增加了不为空的约束,也就是NOT NULL+UNIQUE 一张表里最多只有一个主键索引

    为什么,这是由主键索引的物理实现方式决定的,因为数据存储在文件中只能按照一种顺序进行存储。

    4. 单列索引

    在表中的单个字段上创建索引,单列索引只根据该字段进行索引,单列索引可以是普通索引,也可以是唯一性索引,还可以是全文索引,主要保证该索引只对应一个字段即可,一个表可以有多个单列索引。

    5. 多列(组合、联合)索引

    多列索引是在表的多个字段组合上创建一个索引。该索引指向创建时对应的多个字段,可以通过这几个字段进行查询,但是只有查询条件中使用了这些字段中的第一个字段时才会使用。

    例如:在表中的字段Id name和gender上建立一个多列索引 idx_id_name_gender,只有在查询条件中使用了字段Id时该索引才会被使用,使用组合索引时遵循最左前缀集合。

    6. 全文索引

    在这里插入图片描述

    7. 补充:空间索引

    小结:不同的存储引擎支持的索引类型也不一样 :
    InnoDB :支持 B-tree、Full-text 等索引,不支持 Hash索引;
    MyISAM : 支持 B-tree、Full-text 等索引,不支持 Hash 索引;
    Memory :支持 B-tree、Hash 等索引,不支持 Full-text 索引;
    NDB :支持 Hash 索引,不支持 B-tree、Full-text 等索引;
    Archive :不支持 B-tree、Hash、Full-text 等索引;

  • 相关阅读:
    java服务器信息监控【oshi】(已封装,开箱即用)
    MySQL 高可用之MHA 工作原理和架构,实现MHA高可用实战案例
    第七章 查找 五、二叉排序树
    go语言的使用方法
    docker下载mongo
    Camunda定时器事件示例Demo(Timer Events)
    一分钟彻底掌握Java的Object类与java.lang包
    永不过时的优雅 KOREANO ESSENTIAL 2022秋冬系列全新上市
    platformIO开发arduino
    [go]根据背景色计算文本颜色
  • 原文地址:https://blog.csdn.net/Laura__zhang/article/details/125495349