Support fast_analyze_table
variable, introduced in public MySQL fork
#14494
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR follows up on #13352. It utilizes
fast_analyze_table
(global/session variable), introduced in planetscale/mysql-server@c8a9d93 as part of https://github.com/planetscale/mysql-server/releases/tag/8.0.34-ps1.In this PR, and when
--analyze-table
DDL strategy flag is provided, the Online DDL executor checks for existence of this variable. If the variable exists, then the executor will set it to1
prior to runningANALYZE TABLE ...
.This introduced code is safe to run on MySQL versions that do not support the variable, as the initial probing query is
which is always safe to run. The query returns 0 rows on unsupporting servers.
With
fast_analyze_table
, anANALYZE TABLE
only updates stats for the clustering index (normally thePRIMARY KEY
).Related Issue(s)
Checklist
Deployment Notes