欢迎光临
我们一直在努力

3.1.1 索引本质

索引是数据库管理系统中一个至关重要的概念,它的本质是一种有序的数据结构,通过预先组织数据来避免全表扫描,从而大幅提升数据检索速度。你可以把它理解为书籍的目录:想找一个知识点,通过目录直接定位到页码,远比一页页翻书要快。

🎯 一、索引的本质:以空间换时间

索引的核心思想是用空间换时间,它具备两个关键属性:

  • 独立的存储空间:索引需要占用额外的磁盘空间来存储自身的数据结构。
  • 有序的组织结构:索引通常按照某种规则(如 B+树、哈希)组织数据,使得查找、范围扫描等操作能获得远优于线性扫描的性能。
  • 🌲 二、MySQL 索引的物理存储基础

    MySQL 中最核心的存储引擎是 InnoDB,它使用 B+树 作为索引的物理结构。

    1. InnoDB 中 B+ 树的特性
    • 多路平衡树:B+树是一种多叉平衡树,所有叶子节点都在同一层,查询路径长度相同,性能稳定。
    • 节点大小与磁盘 I/O 对齐:InnoDB 默认页大小为 16KB,B+树的节点大小被设计为正好填满一个数据页。每次磁盘 I/O 至少读取一页,B+树的层高通常在 2~4 层,意味着一次查询仅需 2~4 次 I/O。
    • 叶子节点构成有序双向链表:叶子节点之间通过指针双向连接,形成一个有序链表。这使得基于索引的范围查询(如 BETWEEN、>、<)非常高效,只需找到起始点,然后顺着链表依次向后扫描即可。
    2. B+ 树中存储了什么?—— 聚簇索引与二级索引

    InnoDB 的索引分为两大类,它们的本质区别在于叶子节点存储的内容不同:

    索引类型
    叶子节点存储内容
    特点与影响
    聚簇索引 (Clustered Index) 整行数据 (所有列的值) 1. 每张表有且仅有一个,默认基于主键创建。2. 主键查找最快,因为找到叶子节点即获得全部数据。
    二级索引 (Secondary Index) 主键值 (以及索引键值) 1. 通过二级索引查找,需要分两
    赞(0)
    未经允许不得转载:171主机测评 » 3.1.1 索引本质
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址