Skip to content

Optimize getMembers query in member llm workflow#2949

Merged
skwowet merged 3 commits intomainfrom
improve/CM-2123
Mar 24, 2025
Merged

Optimize getMembers query in member llm workflow#2949
skwowet merged 3 commits intomainfrom
improve/CM-2123

Conversation

@skwowet
Copy link
Copy Markdown
Collaborator

@skwowet skwowet commented Mar 21, 2025

Changes proposed ✍️

Simplified member data retrieval by replacing nested LEFT JOINs with a correlated subquery for organizations. This change significantly improves query performance for members with high activity counts (many identities/organizations).

Before:

-- Uses nested LEFT JOINs and derived table
LEFT JOIN "memberOrganizations" mo on mem.id = mo."memberId"
LEFT JOIN (select ...) as organizations on organizations."memberId" = mo."memberId"

After:

-- Uses correlated subquery
SELECT jsonb_agg(jsonb_build_object(...))
FROM "memberOrganizations" mo
JOIN organizations o ON o.id = mo."organizationId"
WHERE mo."memberId" = mem.id

Impact:

  • 3-4x faster for members with high activity estimate
  • Eliminates double joins (prevents unnecessary row duplication)
  • No data loss - verified against production data

@skwowet skwowet self-assigned this Mar 21, 2025
@skwowet skwowet marked this pull request as ready for review March 21, 2025 13:22
@skwowet skwowet requested a review from sausage-todd March 21, 2025 13:24
@skwowet skwowet merged commit 2a051c9 into main Mar 24, 2025
6 checks passed
@skwowet skwowet deleted the improve/CM-2123 branch March 24, 2025 08:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants