1. 什么是索引

索引的本质是一种数据,如:tree、list、队列、链表、栈、Hash

2. Hash索引

  1. 优点
  • 精确定位要找的数据
  1. 缺点
  • 范围查找性能下降

3. B+Tree

  1. 单节点能存储更多数据,减少磁盘IO次数
  2. 叶子节点形成有序链表,便于执行范围操作
  3. 聚簇索引种,叶子节点的数据直接包含数据;非聚簇索引中,叶子节点存储数据地址的指针

4. 常用存储引擎

  1. InnoDB(聚簇索引)
  2. MyIsam(非聚簇索引)

5. 索引存放目录

  1. frm文件,表结构信息
  2. opt文件,数据库配置文件
  3. 聚簇索引
  • IBD文件,表数据和索引(聚簇索引InnoDB)
  1. 非聚簇索引(MyIsam)
  • 表名.frm文件,表结构信息
  • 表名.MYD,存储表数据
  • 表名.MYI,存储索引,根据索引中保存的指针地址去MYD文件中查找数据

6. 索引结构

6.1. InnoDB 存储引擎

image.png

6.2. MyIsam 存储引擎

image.png