Browse Source

perf(backend): Prefetch org users to avoid query for every user (#35285)

Scott Cooper 2 years ago
parent
commit
4692f120dc
1 changed files with 4 additions and 0 deletions
  1. 4 0
      src/sentry/api/serializers/models/organization_member/base.py

+ 4 - 0
src/sentry/api/serializers/models/organization_member/base.py

@@ -1,6 +1,8 @@
 from collections import defaultdict
 from typing import Any, Mapping, MutableMapping, Optional, Sequence
 
+from django.db.models import prefetch_related_objects
+
 from sentry import roles
 from sentry.api.serializers import Serializer, register, serialize
 from sentry.models import ExternalActor, OrganizationMember, User
@@ -23,6 +25,8 @@ class OrganizationMemberSerializer(Serializer):  # type: ignore
         TODO(dcramer): assert on relations
         """
 
+        # Preload to avoid fetching each user individually
+        prefetch_related_objects(item_list, "user")
         users_set = {
             organization_member.user
             for organization_member in item_list