o 哈 希 索 引 : 适 合 等 值 查 询 , 检 索 效 率 高 , 一 次 到 位 。
o 全 文 索 引 : M y I S A M 和 InnoDB 中 都 支 持 使 用 全 文 索 引 , 一 般
在 文 本 类 型 char,text,varchar 类 型 上 创 建 。
o R-Tree 索 引 : 用 来 对 GIS 数 据 类 型 创 建 SPATIAL 索 引
物 理 存 储 维 度
o 聚 集 索 引 : 聚 集 索 引 就 是 以 主 键 创 建 的 索 引 , 在 叶 子 节 点 存 储
的 是 表 中 的 数 据 。
o 非 聚 集 索 引 : 非 聚 集 索 引 就 是 以 非 主 键 创 建 的 索 引 , 在 叶 子 节
点 存 储 的 是 主 键 和 索 引 列 。
逻 辑 维 度
o 主 键 索 引 : 一 种 特 殊 的 唯 一 索 引 , 不 允 许 有 空 值 。
o 普 通 索 引 : MySQL 中 基 本 索 引 类 型 , 允 许 空 值 和 重 复 值 。
o 联 合 索 引 : 多 个 字 段 创 建 的 索 引 , 使 用 时 遵 循 最 左 前 缀 原 则 。
o 唯 一 索 引 : 索 引 列 中 的 值 必 须 是 唯 一 的 , 但 是 允 许 为 空 值 。
o 空 间 索 引 : MySQL5.7 之 后 支 持 空 间 索 引 , 在 空 间 索 引 这 方 面
遵 循 O p e n G I S 几 何 数 据 模 型 规 则 。
三 、 面 试 官 考 点 之 为 什 么 选 择 B+树 作 为 索 引 结 构
可 以 从 这 几 个 维 度 去 看 这 个 问 题 , 查 询 是 否 够 快 , 效 率 是 否 稳 定 , 存 储
数 据 多 少 , 以 及 查 找 磁 盘 次 数 等 等 。 为 什 么 不 是 哈 希 结 构 ? 为 什 么 不 是
二 叉 树 ,为 什 么 不 是 平 衡 二 叉 树 ,为 什 么 不 是 B 树 ,而 偏 偏 是 B+树 呢 ?
我 们 写 业 务 SQL 查 询 时 , 大 多 数 情 况 下 , 都 是 范 围 查 询 的 , 如 下 SQL
select * from employee where age between 18 and 28;
为 什 么 不 使 用 哈 希 结 构 ?