From 3b2fa385b42807f893b63adbb806b577b4b7bac8 Mon Sep 17 00:00:00 2001 From: shichun-0415 <89768198+shichun-0415@users.noreply.github.com> Date: Fri, 16 Sep 2022 15:39:01 +0800 Subject: [PATCH] doc: update the doc for hash_join_build and hash_join_probe hints (#10451) --- optimizer-hints.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/optimizer-hints.md b/optimizer-hints.md index d0a4e96c156cb..11a1084076756 100644 --- a/optimizer-hints.md +++ b/optimizer-hints.md @@ -133,6 +133,22 @@ select /*+ HASH_JOIN(t1, t2) */ * from t1, t2 where t1.id = t2.id; > > `TIDB_HJ` is the alias for `HASH_JOIN` in TiDB 3.0.x and earlier versions. If you are using any of these versions, you must apply the `TIDB_HJ(t1_name [, tl_name ...])` syntax for the hint. For the later versions of TiDB, `TIDB_HJ` and `HASH_JOIN` are both valid names for the hint, but `HASH_JOIN` is recommended. +### HASH_JOIN_BUILD(t1_name [, tl_name ...]) + +The `HASH_JOIN_BUILD(t1_name [, tl_name ...])` hint tells the optimizer to use the hash join algorithm on specified tables with these tables working as the build side. In this way, you can build hash tables using specific tables. For example: + +```sql +SELECT /*+ HASH_JOIN_BUILD(t1) */ * FROM t1, t2 WHERE t1.id = t2.id; +``` + +### HASH_JOIN_PROBE(t1_name [, tl_name ...]) + +The `HASH_JOIN_PROBE(t1_name [, tl_name ...])` hint tells the optimizer to use the hash join algorithm on specified tables with these tables working as the probe side. In this way, you can execute the hash join algorithm with specific tables as the probe side. For example: + +```sql +SELECT /*+ HASH_JOIN_PROBE(t2) */ * FROM t1, t2 WHERE t1.id = t2.id; +``` + ### SEMI_JOIN_REWRITE() The `SEMI_JOIN_REWRITE()` hint tells the optimizer to rewrite the semi-join query to an ordinary join query. Currently, this hint only works for `EXISTS` subqueries.