Optimize Handler_read_rnd
by removing ORDER BY clause
#448
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.
Problem
We observed that the
Handler_read_rnd
was continually increasing whenever__get_table_information
was called upon starting PyMyRepl. The reason was found to be the usage of theORDER BY
clause on a non-indexed column within the function.Solution
Since the table entries were empty, and
ORDER BY
was being used on a non-indexed column, this led to an increase in theHandler_read_rnd
. As a remedy, we removed theORDER BY
clause from the SQL query and instead used Python'ssort()
method to sort the results. SinceORDINAL_POSITION
is auto-incremental, this change will return the same sorted results as the originalORDER BY
clause, without the associated performance penalty.Changes
Removed the
ORDER BY
clause from the SQL query within__get_table_information
.Implemented sorting using Python's
sort()
method based onORDINAL_POSITION
.Benefits
Reduces the overhead associated with using the
ORDER BY
clause on a non-indexed column.Mitigates the increase in
Handler_read_rnd
, leading to improved performance.Fixed: #445