主题
面试速答(先看这里)
**一句话结论:**数据库中的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插件开始支持中文。