Skip to content

面试速答(先看这里)

**一句话结论:**数据库中的B+树索引分为 聚集索引 和 非聚集索引 。

60秒标准回答:

InnoDB存储引擎支持两种常见的索引数据结构: B+树索引、Hash索引 ,其中B+树索引是目前关系型数据库系统中最常见、最有效的索引

数据库中的B+树索引分为 聚集索引 和 非聚集索引 。聚集索引就是按照每张表的主键构造一个B+树,B+树的叶子节点中记录着表中一行记录的所有值。只要找到这个叶子节点也就得到了这条记录的所有值。非聚簇索引的叶节点中不包含行记录的所有值。只包含索引值和主键的值

根据索引的唯一性, 又 可以把索引分为 唯一索引 和 普通索引 。唯一索引要求索引的列值必须唯一,不能重复

**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点

回答主线:

  • **要点1:**InnoDB存储引擎支持两种常见的索引数据结构: B+树索引、Hash索引 ,其中B+树索引是目前关系型数据库系统中最常见、最有效的索引。
  • **要点2:**根据索引的唯一性, 又 可以把索引分为 唯一索引 和 普通索引 。
  • **要点3:**另外,在MySQL 5.6中还增加了 全文索引 ,5.7版本之后通过使用ngram插件开始支持中文。

**记忆锚点:**聚集索引 → 聚簇索引和非聚簇索引 → InnoDB → 非聚集索引 → 唯一索引 → 普通索引

易错提醒:

  • 唯一索引要求索引的列值必须唯一,不能重复。

加分表达:

  • 只要找到这个叶子节点也就得到了这条记录的所有值。

追问准备:

  • 围绕「聚集索引」:底层原理是什么?使用时有哪些边界和常见坑?
  • 围绕「聚簇索引和非聚簇索引」:底层原理是什么?使用时有哪些边界和常见坑?
  • 围绕「InnoDB」:底层原理是什么?使用时有哪些边界和常见坑?
  • 如果线上出现异常,你会如何定位、验证并规避?

典型回答 ​

InnoDB存储引擎支持两种常见的索引数据结构:B+树索引、Hash索引,其中B+树索引是目前关系型数据库系统中最常见、最有效的索引。

数据库中的B+树索引分为聚集索引和非聚集索引。聚集索引就是按照每张表的主键构造一个B+树,B+树的叶子节点中记录着表中一行记录的所有值。只要找到这个叶子节点也就得到了这条记录的所有值。非聚簇索引的叶节点中不包含行记录的所有值。只包含索引值和主键的值。

根据索引的唯一性,又可以把索引分为唯一索引和普通索引。唯一索引要求索引的列值必须唯一,不能重复。

另外,在MySQL 5.6中还增加了全文索引,5.7版本之后通过使用ngram插件开始支持中文。

扩展知识 ​

B+树索引和Hash索引 ​

📄 InnoDB为什么使用B+树实现索引?

打开文档:InnoDB为什么使用B+树实现索引?

聚簇索引和非聚簇索引 ​

📄 什么是聚簇索引和非聚簇索引?

打开文档:什么是聚簇索引和非聚簇索引?

唯一性索引 ​

📄 MySQL是如何保证唯一性索引的唯一性的?

打开文档:MySQL是如何保证唯一性索引的唯一性的?

📄 ✅唯一索引和主键索引的区别?

打开文档:✅唯一索引和主键索引的区别?