Improve performance of share provider #1035
Merged
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.
Reduces the number of database table joins in a single call to share providers getShareWith function from 10 to 6.
This is the current database query, which is executed on each call to circles share provider and its average slow query log time:
Current share provider db query
With the the proposed changes the number of join statements is reduced to 6, which reduces the average slow query log runtime roughly by a factor of 10:
Proposed share provider db query
As the share provider is called frequently e.g. by nc client or cron jobs for requesting the users mounted files, this changes can reduce the CPU load on very large instances.