Skip to content

Commit

Permalink
Update choose-index.md
Browse files Browse the repository at this point in the history
Co-authored-by: TomShawn <[email protected]>
  • Loading branch information
xuyifangreeneyes and TomShawn authored Aug 12, 2021
1 parent b38e80b commit bc403c4
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion choose-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,9 @@ Skyline-Pruning 是一个针对索引的启发式过滤规则,能降低错误

- 选择该索引是否能满足一定的顺序。因为索引的读取可以保证某些列集合的顺序,所以满足查询要求顺序的索引在这个维度上优于不满足的索引。

对于这三种维度,如果某个索引 `idx_a`**三个维度上都不比 `idx_b`**,且**有一个维度比 `idx_b`**,那么就会优先选择 `idx_a`。在执行 `EXPLAIN FORMAT = 'verbose' ...` 语句时,如果 Skyline-Pruning 排除了某些索引, TiDB 会输出一条 NOTE 级别的 warning 提示哪些索引在 Skyline-Pruning 之后保留下来。在以下示例中,索引 `idx_b``idx_e` 均劣于 `idx_b_c`,因而被 Skyline-Pruning 排除,`SHOW WARNING` 显示了经过 Skyline-Pruning 后剩余的索引。
对于以上三种维度,如果索引 `idx_a` 在这三个维度上都不比 `idx_b` 差,且有一个维度比 `idx_b` 好,那么 TiDB 会优先选择 `idx_a`。在执行 `EXPLAIN FORMAT = 'verbose' ...` 语句时,如果 Skyline-Pruning 排除了某些索引,TiDB 会输出一条 NOTE 级别的 warning 提示哪些索引在 Skyline-Pruning 排除之后保留下来。

在以下示例中,索引 `idx_b``idx_e` 均劣于 `idx_b_c`,因而被 Skyline-Pruning 排除,`SHOW WARNING` 的返回结果显示了经过 Skyline-Pruning 后剩余的索引。

```sql
mysql> CREATE TABLE t(a INT PRIMARY KEY, b INT, c INT, d INT, e INT, INDEX idx_b(b), INDEX idx_b_c(b, c), INDEX idx_e(e));
Expand Down

0 comments on commit bc403c4

Please sign in to comment.