From aaeb5db3c77c0306124c76a4b4df2c0dde63a177 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Thu, 6 Nov 2025 20:27:47 +0100 Subject: [PATCH] Server: Optimise delta sub-query (#13633) --- packages/server/src/models/ChangeModel.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/server/src/models/ChangeModel.ts b/packages/server/src/models/ChangeModel.ts index ab9391fc38..58e42021c4 100644 --- a/packages/server/src/models/ChangeModel.ts +++ b/packages/server/src/models/ChangeModel.ts @@ -167,12 +167,18 @@ export default class ChangeModel extends BaseModel { // 2025-11-06: Remove the "+ 0" because now it appears to make query slower by preventing // the query planner from using the index. Using Postgres 16.8 + const changesFieldsSql = fields + .map(f => `"changes"."${f}" AS "${f}"`) + .join(', '); + const subQuery2 = ` - SELECT ${fieldsSql} + SELECT ${changesFieldsSql} FROM "changes" + JOIN "user_items" + ON user_items.item_id = changes.item_id WHERE counter > ? AND type = ? - AND item_id IN (SELECT item_id FROM user_items WHERE user_id = ?) + AND user_items.user_id = ? ORDER BY "counter" ASC ${doCountQuery ? '' : 'LIMIT ?'} `;