MySQL查询-----InnoDB和MyISAM索引结构的区别

一、索引类型

  • 普通索引
  • 唯一索引:值唯一,允许NULL
  • 主键索引:特殊的唯一索引,不允许NULL
  • 组合索引:多列索引
  • 全文索引
  • 空间索引

概念:

  • 非聚簇索引:索引树的叶子节点存储数据的位置信息
  • 聚簇索引:索引树的叶子节点存储数据

二、InnoDB与MyISAM索引结构的区别

  • InnoDB引擎:按b+tree结构组织存放,叶子节点包含全部数据信息,辅助索引叶子节点存放的是主键。
    对于InnoDB的普通索引,会扫描2次,第一次由普通索引找到对应主键索引,第二次根据主键索引找到对应完整数据
    MySQL查询-----InnoDB和MyISAM索引结构的区别_第1张图片
    MySQL查询-----InnoDB和MyISAM索引结构的区别_第2张图片
    MySQL查询-----InnoDB和MyISAM索引结构的区别_第3张图片
  • MyISAM引擎:也是b+tree结构。叶子节点存放的是地址。主键索引与辅助索引的结果相同,都是数据地址。只不过主键索引唯一,辅助索引key可重复。
    MySQL查询-----InnoDB和MyISAM索引结构的区别_第4张图片
    MySQL查询-----InnoDB和MyISAM索引结构的区别_第5张图片
    MySQL查询-----InnoDB和MyISAM索引结构的区别_第6张图片

你可能感兴趣的:(MySQL,mysql)