-
Notifications
You must be signed in to change notification settings - Fork 5.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
planner: add maybe good heuristics for index selection #26850
planner: add maybe good heuristics for index selection #26850
Conversation
[REVIEW NOTIFICATION] This pull request has not been approved. To complete the pull request process, please ask the reviewers in the list to review by filling The full list of commands accepted by this bot can be found here. Reviewer can indicate their review by submitting an approval review. |
/sig planner |
/cc @winoros |
Since #27123 can also make the optimizer choose index rather than pk for the situations like |
What problem does this PR solve?
Issue Number: close #xxx
Problem Summary:
What is changed and how it works?
When SQL has
order by pk limit n
pattern, and one index path only has point ranges and itsCountAfterAccess
is small enough, we directly choose the index rather than pk. Since the heuristic rule is not always good, we introduce a global/session variabletidb_enable_maybe_good_heuristics
and only apply the rule when the switch turns on. When executingEXPLAIN
, TiDB will output a NOTE level warning if some path matches the maybe good heuristic rule.Check List
Tests
Side effects
Documentation
Release note