Optimize assorted Django operations #627
Open
+246
−222
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.
Meant to generally optimize our usage of the Django ORM, with a focus on taking full advantage of major upgrades in #605.
Changelog:
update_club_counts
. Shows a ~70% speedup in local benchmarks (n=2000 memberships/favorites).bulk_create
plays withAutoField
primary keys (like we have for theEvents
model). But, the documentation mentions that pSQL should be fine.[1]Events
objects doesn't matter. Would appreciate a second set of eyes.qs.exists()
to check existence instead ofqs.first() is not None
whenever possible.[1] https://docs.djangoproject.com/en/5.0/ref/models/querysets/#bulk-create