Improve loads by using maps for deduplication #1337
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.
Let maps handle the deduplication logic to increase performance / improve response times.
Commit Deduplicate IDs in eager loads. introduced nested loops to filter duplicate foreign key IDs that are passed to the
WhereIn
-Function.We noticed that the nested-loop-implementation of the deduplication logic results in bad performance as the number of eagerly loaded entities increases: #267.
We considered completely dropping the deduplication since databases treat IN clauses as sets.
The map-implementation improves performance and keeps the resulting SQL statements "backwards-compatible".
Please let us know if anything is missing!