From 41aed566896e723b5f08e50b679de44efd9bb963 Mon Sep 17 00:00:00 2001 From: poignatov Date: Mon, 26 Jan 2026 18:20:52 +0300 Subject: [PATCH] =?UTF-8?q?4.0.5:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20covering=20index=20=D0=B4=D0=BB=D1=8F=20reward?= =?UTF-8?q?=5Fconfigs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERSION | 2 +- ...0003_add_reward_configs_covering_index.down.sql | 3 +++ ...000003_add_reward_configs_covering_index.up.sql | 14 ++++++++++++++ play-life-web/package.json | 2 +- 4 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 play-life-backend/migrations/000003_add_reward_configs_covering_index.down.sql create mode 100644 play-life-backend/migrations/000003_add_reward_configs_covering_index.up.sql diff --git a/VERSION b/VERSION index c5106e6..7636e75 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.0.4 +4.0.5 diff --git a/play-life-backend/migrations/000003_add_reward_configs_covering_index.down.sql b/play-life-backend/migrations/000003_add_reward_configs_covering_index.down.sql new file mode 100644 index 0000000..291e61b --- /dev/null +++ b/play-life-backend/migrations/000003_add_reward_configs_covering_index.down.sql @@ -0,0 +1,3 @@ +-- Rollback migration: Remove covering index for reward_configs + +DROP INDEX IF EXISTS idx_reward_configs_task_id_covering; diff --git a/play-life-backend/migrations/000003_add_reward_configs_covering_index.up.sql b/play-life-backend/migrations/000003_add_reward_configs_covering_index.up.sql new file mode 100644 index 0000000..a22f5dc --- /dev/null +++ b/play-life-backend/migrations/000003_add_reward_configs_covering_index.up.sql @@ -0,0 +1,14 @@ +-- Migration: Add covering index for reward_configs to optimize subtask rewards queries +-- Date: 2026-01-26 +-- +-- This migration adds a covering index to optimize queries that load rewards for multiple subtasks. +-- The index includes all columns needed for the query, allowing PostgreSQL to perform +-- index-only scans without accessing the main table. +-- +-- Covering index for reward_configs query +-- Includes all columns needed for rewards selection to avoid table lookups +CREATE INDEX IF NOT EXISTS idx_reward_configs_task_id_covering +ON reward_configs(task_id, position) +INCLUDE (id, project_id, value, use_progression); + +COMMENT ON INDEX idx_reward_configs_task_id_covering IS 'Covering index for rewards query - includes all selected columns to avoid table lookups. Enables index-only scans for better performance when loading rewards for multiple tasks.'; diff --git a/play-life-web/package.json b/play-life-web/package.json index 2409ec6..861be35 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "4.0.4", + "version": "4.0.5", "type": "module", "scripts": { "dev": "vite",