Files
open-webui/backend/open_webui/models
G30 e69ce6e1c6 perf(channels): batch N+1 queries for reactions and thread replies (#25831)
Replace per-message database queries with batch IN-clause queries in
channel message handlers. This eliminates the N+1 query pattern that
caused ~102 queries per channel page load (50 messages × 2 queries each).

Changes:
- Add get_reactions_by_message_ids() to MessageTable: single query
  fetches all reactions for multiple messages using IN clause with
  User JOIN, returns dict[message_id, list[Reactions]]
- Add get_thread_reply_counts_by_message_ids() to MessageTable: single
  GROUP BY aggregate query returns (count, max_created_at) per parent,
  replacing full object loads just to call len()
- Refactor get_channel_messages(): 102 → 4 queries per page
- Refactor get_pinned_channel_messages(): 22 → 3 queries per page
- Refactor get_channel_thread_messages(): 53 → 4 queries per page
- Refactor send_notification(): N+1 membership check → batch set lookup
2026-06-29 02:05:16 -05:00
..
2026-06-17 00:43:59 +02:00
2026-06-01 14:09:54 -07:00
2026-06-23 23:35:44 +02:00
2026-06-29 01:38:41 -05:00
2026-06-18 11:02:14 +02:00
2026-06-17 00:17:48 +02:00
2026-06-17 00:25:35 +02:00
2026-06-01 13:56:55 -07:00
2026-06-29 01:41:43 -05:00
2026-06-29 00:26:35 -05:00
2026-06-01 13:56:55 -07:00
2026-05-14 01:49:34 +09:00
2026-06-01 13:56:55 -07:00
2026-06-01 13:56:55 -07:00
2026-06-01 13:56:55 -07:00