Skip to content

Commit 5813eed

Browse files
authored
perf: Slow dialogue log query (#3016)
1 parent 3631503 commit 5813eed

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

apps/application/serializers/chat_serializers.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,14 @@ def get_query_set(self, select_ids=None):
174174
condition = base_condition & min_trample_query
175175
else:
176176
condition = base_condition
177-
return query_set.filter(condition).order_by("-application_chat.update_time")
177+
inner_queryset = QuerySet(Chat).filter(application_id=self.data.get("application_id"))
178+
if 'abstract' in self.data and self.data.get('abstract') is not None:
179+
inner_queryset = inner_queryset.filter(abstract__icontains=self.data.get('abstract'))
180+
181+
return {
182+
'inner_queryset': inner_queryset,
183+
'default_queryset': query_set.filter(condition).order_by("-application_chat.update_time")
184+
}
178185

179186
def list(self, with_valid=True):
180187
if with_valid:

apps/application/sql/list_application_chat.sql

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ FROM
1111
chat_id
1212
FROM
1313
application_chat_record
14+
WHERE chat_id IN (
15+
SELECT id FROM application_chat ${inner_queryset})
1416
GROUP BY
1517
application_chat_record.chat_id
16-
) chat_record_temp ON application_chat."id" = chat_record_temp.chat_id
18+
) chat_record_temp ON application_chat."id" = chat_record_temp.chat_id
19+
${default_queryset}

0 commit comments

Comments
 (0)