Skip to content
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

statistics: prioritize low selectivity indexes in the greedy search procedure of Selectivity() #20038

Merged
merged 7 commits into from
Sep 22, 2020

Conversation

eurekaka
Copy link
Contributor

What problem does this PR solve?

Issue Number: close #19904

Problem Summary:

Optimal index is not chosen when computing selectivity.

What is changed and how it works?

What's Changed:
Consider the selectivity of combined conditions in the greedy search procedure to choose the covering indexes.

How it Works:
Different indexes may indicate that different set of conditions are covered, we should prefer the combined conditions with lower selectivity. The rationale behind is that lower selectivity tends to reflect more functional dependencies between columns.

Related changes

  • Need to cherry-pick to the release branch

Check List

Tests

  • Unit test

Side effects

N/A

Release note

  • Prioritize low selectivity indexes in the greedy search procedure of Selectivity()

@eurekaka eurekaka added type/enhancement The issue or PR belongs to an enhancement. component/statistics labels Sep 16, 2020
@eurekaka eurekaka requested a review from a team as a code owner September 16, 2020 11:41
@eurekaka eurekaka requested review from hanfei1991 and removed request for a team and hanfei1991 September 16, 2020 11:41
@eurekaka eurekaka force-pushed the greedy_search branch 2 times, most recently from 584c75c to f07d698 Compare September 16, 2020 11:46
Copy link
Member

@winoros winoros left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@ti-srebot ti-srebot added the status/LGT1 Indicates that a PR has LGTM 1. label Sep 17, 2020
@SunRunAway
Copy link
Contributor

Should it be cherry-picked to the release branch?

Copy link
Contributor

@qw4990 qw4990 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ti-srebot ti-srebot removed the status/LGT1 Indicates that a PR has LGTM 1. label Sep 21, 2020
@ti-srebot ti-srebot added the status/LGT2 Indicates that a PR has LGTM 2. label Sep 21, 2020
@qw4990
Copy link
Contributor

qw4990 commented Sep 21, 2020

/merge

@ti-srebot ti-srebot added the status/can-merge Indicates a PR has been approved by a committer. label Sep 21, 2020
@ti-srebot
Copy link
Contributor

/run-all-tests

@ti-srebot
Copy link
Contributor

@eurekaka merge failed.

@eurekaka
Copy link
Contributor Author

/run-all-tests

@eurekaka eurekaka merged commit 151ef84 into pingcap:master Sep 22, 2020
@eurekaka eurekaka deleted the greedy_search branch September 22, 2020 11:17
ti-srebot pushed a commit to ti-srebot/tidb that referenced this pull request Sep 22, 2020
Signed-off-by: ti-srebot <ti-srebot@pingcap.com>
@ti-srebot
Copy link
Contributor

cherry pick to release-4.0 in PR #20154

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/statistics status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2. type/enhancement The issue or PR belongs to an enhancement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

prioritize low selectivity indexes in the greedy search procedure of Selectivity()
5 participants