Details
-
New Feature
-
Status: In Testing (View Workflow)
-
Major
-
Resolution: Unresolved
Description
Subquery hints affect whether to use semijoin transformations and which semijoin strategies to permit, and, when semijoins are not used, whether to use subquery materialization or IN-to-EXISTS transformations.
Syntax of hints that affect semijoin strategies:
hint_name([@query_block_name] [strategy [, strategy] ...])
|
The syntax refers to these terms:
- hint_name: These hint names are permitted:
- SEMIJOIN, NO_SEMIJOIN: Enable or disable the named semijoin strategies.
- strategy: A semijoin strategy to be enabled or disabled. These strategy names are permitted: DUPSWEEDOUT, FIRSTMATCH, LOOSESCAN, MATERIALIZATION.
For SEMIJOIN hints, if no strategies are named, semijoin is used if possible based on the strategies enabled according to the optimizer_switch system variable. If strategies are named but inapplicable for the statement, DUPSWEEDOUT is used.
For NO_SEMIJOIN hints, if no strategies are named, semijoin is not used. If strategies are named that rule out all applicable strategies for the statement, DUPSWEEDOUT is used.
See MySQL documentation for details.
Worklog #8244 may be also useful.
Attachments
Issue Links
- blocks
-
MDEV-34860 Implement MAX_EXECUTION_TIME hint
-
- Stalled
-
- causes
-
MDEV-36169 If strategies in hint SEMIJOIN are named but inapplicable for the statement, DUPSWEEDOUT shoud be used, but is does not work for engines Aria and InnoDB
-
- In Progress
-
- is blocked by
-
MDEV-36169 If strategies in hint SEMIJOIN are named but inapplicable for the statement, DUPSWEEDOUT shoud be used, but is does not work for engines Aria and InnoDB
-
- In Progress
-
- relates to
-
MDEV-35483 Docs for optimizer hints
-
- Stalled
-
- split from
-
MDEV-33281 Implement optimizer hints like in MySQL 8
-
- In Progress
-
Activity
Field | Original Value | New Value |
---|---|---|
Link | This issue split from MDEV-33281 [ MDEV-33281 ] |
Description |
Subquery hints affect whether to use semijoin transformations and which semijoin strategies to permit, and, when semijoins are not used, whether to use subquery materialization or IN-to-EXISTS transformations.
Syntax of hints that affect semijoin strategies: {code} hint_name([@query_block_name] [strategy [, strategy] ...]) {code} The syntax refers to these terms: * hint_name: These hint names are permitted: * SEMIJOIN, NO_SEMIJOIN: Enable or disable the named semijoin strategies. * strategy: A semijoin strategy to be enabled or disabled. These strategy names are permitted: DUPSWEEDOUT, FIRSTMATCH, LOOSESCAN, MATERIALIZATION. For SEMIJOIN hints, if no strategies are named, semijoin is used if possible based on the strategies enabled according to the optimizer_switch system variable. If strategies are named but inapplicable for the statement, DUPSWEEDOUT is used. For NO_SEMIJOIN hints, if no strategies are named, semijoin is not used. If strategies are named that rule out all applicable strategies for the statement, DUPSWEEDOUT is used. See [lMySQL documentation|https://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html#optimizer-hints-subquery] for details. |
Subquery hints affect whether to use semijoin transformations and which semijoin strategies to permit, and, when semijoins are not used, whether to use subquery materialization or IN-to-EXISTS transformations.
Syntax of hints that affect semijoin strategies: {code} hint_name([@query_block_name] [strategy [, strategy] ...]) {code} The syntax refers to these terms: * hint_name: These hint names are permitted: * SEMIJOIN, NO_SEMIJOIN: Enable or disable the named semijoin strategies. * strategy: A semijoin strategy to be enabled or disabled. These strategy names are permitted: DUPSWEEDOUT, FIRSTMATCH, LOOSESCAN, MATERIALIZATION. For SEMIJOIN hints, if no strategies are named, semijoin is used if possible based on the strategies enabled according to the optimizer_switch system variable. If strategies are named but inapplicable for the statement, DUPSWEEDOUT is used. For NO_SEMIJOIN hints, if no strategies are named, semijoin is not used. If strategies are named that rule out all applicable strategies for the statement, DUPSWEEDOUT is used. See [MySQL documentation|https://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html#optimizer-hints-subquery] for details. |
Description |
Subquery hints affect whether to use semijoin transformations and which semijoin strategies to permit, and, when semijoins are not used, whether to use subquery materialization or IN-to-EXISTS transformations.
Syntax of hints that affect semijoin strategies: {code} hint_name([@query_block_name] [strategy [, strategy] ...]) {code} The syntax refers to these terms: * hint_name: These hint names are permitted: * SEMIJOIN, NO_SEMIJOIN: Enable or disable the named semijoin strategies. * strategy: A semijoin strategy to be enabled or disabled. These strategy names are permitted: DUPSWEEDOUT, FIRSTMATCH, LOOSESCAN, MATERIALIZATION. For SEMIJOIN hints, if no strategies are named, semijoin is used if possible based on the strategies enabled according to the optimizer_switch system variable. If strategies are named but inapplicable for the statement, DUPSWEEDOUT is used. For NO_SEMIJOIN hints, if no strategies are named, semijoin is not used. If strategies are named that rule out all applicable strategies for the statement, DUPSWEEDOUT is used. See [MySQL documentation|https://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html#optimizer-hints-subquery] for details. |
Subquery hints affect whether to use semijoin transformations and which semijoin strategies to permit, and, when semijoins are not used, whether to use subquery materialization or IN-to-EXISTS transformations.
Syntax of hints that affect semijoin strategies: {code} hint_name([@query_block_name] [strategy [, strategy] ...]) {code} The syntax refers to these terms: * hint_name: These hint names are permitted: * SEMIJOIN, NO_SEMIJOIN: Enable or disable the named semijoin strategies. * strategy: A semijoin strategy to be enabled or disabled. These strategy names are permitted: DUPSWEEDOUT, FIRSTMATCH, LOOSESCAN, MATERIALIZATION. For SEMIJOIN hints, if no strategies are named, semijoin is used if possible based on the strategies enabled according to the optimizer_switch system variable. If strategies are named but inapplicable for the statement, DUPSWEEDOUT is used. For NO_SEMIJOIN hints, if no strategies are named, semijoin is not used. If strategies are named that rule out all applicable strategies for the statement, DUPSWEEDOUT is used. See [MySQL documentation|https://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html#optimizer-hints-subquery] for details. [Worklog #8244|https://dev.mysql.com/worklog/task/?id=8244] may be also useful. |
Summary | Implement subquery optimizer hints | Implement subquery optimizer hints |
Fix Version/s | 11.8 [ 29921 ] | |
Fix Version/s | 11.7 [ 29815 ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Status | In Progress [ 3 ] | In Testing [ 10301 ] |
Assignee | Oleg Smirnov [ JIRAUSER50405 ] | Elena Stepanova [ elenst ] |
Assignee | Elena Stepanova [ elenst ] | Lena Startseva [ JIRAUSER50478 ] |
Link | This issue relates to MDEV-35483 [ MDEV-35483 ] |
Link | This issue is part of TODO-5071 [ TODO-5071 ] |
Labels | Preview_11.8 |
Link | This issue blocks MDEV-34860 [ MDEV-34860 ] |
Fix Version/s | 11.9 [ 29945 ] | |
Fix Version/s | 11.8 [ 29921 ] |
Link | This issue causes MDEV-36169 [ MDEV-36169 ] |
Link | This issue is part of TODO-5192 [ TODO-5192 ] |
Labels | Preview_11.8 | Preview_11.8 Preview_12.0 |
Link | This issue is blocked by MDEV-36169 [ MDEV-36169 ] |