From 552de44a3fe6ea2e69bde9e078d83a063e0ff523 Mon Sep 17 00:00:00 2001 From: Yiding Cui Date: Mon, 25 May 2020 03:25:02 +0800 Subject: [PATCH 1/3] perf-tuning: add doc for wrong index solution page --- wrong-index-solution.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/wrong-index-solution.md b/wrong-index-solution.md index 252bca4d8bae..e0a47d895f25 100644 --- a/wrong-index-solution.md +++ b/wrong-index-solution.md @@ -4,3 +4,21 @@ category: performance --- # 错误索引的解决方案 + +在我们观察到某个查询的执行速度不及预期时可能是它的索引使用有误,这时就需要通过一些手段来解决。通常可以先使用[表的健康度信息](/statistics.md#表的健康度信息)来查看统计信息的健康度。根据健康度可以分为两种情况处理。 + +## 健康度较低 + +这意味着距离 TiDB 上次 `ANALYZE` 很久了。这时可以先使用 `ANALYZE` 命令对统计信息进行更新。更新之后如果索引的使用上还是错误的可以进入下一个章节。 + +## 健康度接近 100% + +这时意味着刚刚结束 `ANALYZE` 命令或者结束后不久。这时可能和 TiDB 对行数的估算逻辑有关。 + +对于等值查询,在[统计信息简介](/statistics.md)中提到了一种可能的情况。这时我们可以先检查是不是这种特殊情况然后进行对应的处理。 + +当经过检查后发现不是上面的可能情况后,我们可以使用 [Optimizer Hints](/optimizer-hints.md) 中提到的 `USE_INDEX` 或者 `use index` 来强制选择索引。同时也可以使用[执行计划绑定](/execution-plan-binding.md)中提到的方式来非侵入的更改查询的行为。 + +## 其他情况 + +除去上述情况外,也存在因为数据的更新导致现有所有索引都再适合的情况。这时就需要对条件和数据分布进行分析,查看是否有新的索引可以加快查询速度,然后使用 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 命令增加新的索引。 \ No newline at end of file From cf2c3f593ec482f2f26be7047ae2cffca5ae9a4e Mon Sep 17 00:00:00 2001 From: lilin90 Date: Mon, 25 May 2020 16:25:49 +0800 Subject: [PATCH 2/3] Update wording --- wrong-index-solution.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/wrong-index-solution.md b/wrong-index-solution.md index e0a47d895f25..60b8783df2e4 100644 --- a/wrong-index-solution.md +++ b/wrong-index-solution.md @@ -1,23 +1,24 @@ --- title: 错误索引的解决方案 +summary: 了解如何处理错误索引问题。 category: performance --- # 错误索引的解决方案 -在我们观察到某个查询的执行速度不及预期时可能是它的索引使用有误,这时就需要通过一些手段来解决。通常可以先使用[表的健康度信息](/statistics.md#表的健康度信息)来查看统计信息的健康度。根据健康度可以分为两种情况处理。 +在观察到某个查询的执行速度达不到预期时,可能是它的索引使用有误,这时就需要通过一些手段来解决。通常可以先使用[表的健康度信息](/statistics.md#表的健康度信息)来查看统计信息的健康度。根据健康度可以分为以下两种情况处理。 ## 健康度较低 -这意味着距离 TiDB 上次 `ANALYZE` 很久了。这时可以先使用 `ANALYZE` 命令对统计信息进行更新。更新之后如果索引的使用上还是错误的可以进入下一个章节。 +这意味着距离 TiDB 上次 `ANALYZE` 很久了。这时可以先使用 `ANALYZE` 命令对统计信息进行更新。更新之后如果索引的使用上还是错误的,可以查看下一小节。 ## 健康度接近 100% 这时意味着刚刚结束 `ANALYZE` 命令或者结束后不久。这时可能和 TiDB 对行数的估算逻辑有关。 -对于等值查询,在[统计信息简介](/statistics.md)中提到了一种可能的情况。这时我们可以先检查是不是这种特殊情况然后进行对应的处理。 +对于等值查询,在[统计信息简介](/statistics.md)中提到了一种可能的情况。这时可以先检查是不是这种特殊情况,然后进行对应的处理。 -当经过检查后发现不是上面的可能情况后,我们可以使用 [Optimizer Hints](/optimizer-hints.md) 中提到的 `USE_INDEX` 或者 `use index` 来强制选择索引。同时也可以使用[执行计划绑定](/execution-plan-binding.md)中提到的方式来非侵入的更改查询的行为。 +如果经过检查发现不是上面的可能情况,可以使用 [Optimizer Hints](/optimizer-hints.md) 中提到的 `USE_INDEX` 或者 `use index` 来强制选择索引。同时也可以使用[执行计划绑定](/execution-plan-binding.md)中提到的方式来非侵入地更改查询的行为。 ## 其他情况 From fa9af1cf242a132a4307c574d3a9253e6f397713 Mon Sep 17 00:00:00 2001 From: Yiding Cui Date: Mon, 25 May 2020 16:30:28 +0800 Subject: [PATCH 3/3] Update wrong-index-solution.md Co-authored-by: Lilian Lee --- wrong-index-solution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrong-index-solution.md b/wrong-index-solution.md index 60b8783df2e4..a35676deaf30 100644 --- a/wrong-index-solution.md +++ b/wrong-index-solution.md @@ -22,4 +22,4 @@ category: performance ## 其他情况 -除去上述情况外,也存在因为数据的更新导致现有所有索引都再适合的情况。这时就需要对条件和数据分布进行分析,查看是否有新的索引可以加快查询速度,然后使用 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 命令增加新的索引。 \ No newline at end of file +除去上述情况外,也存在因为数据的更新导致现有所有索引都不再适合的情况。这时就需要对条件和数据分布进行分析,查看是否有新的索引可以加快查询速度,然后使用 [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 命令增加新的索引。