diff --git a/packages/backend/migration/1756824506000-optimize-drive-files-query.js b/packages/backend/migration/1756824506000-optimize-drive-files-query.js index 0716b321fc..e6b72c426e 100644 --- a/packages/backend/migration/1756824506000-optimize-drive-files-query.js +++ b/packages/backend/migration/1756824506000-optimize-drive-files-query.js @@ -4,16 +4,16 @@ */ export class OptimizeDriveFilesQuery1756824506000 { - name = 'OptimizeDriveFilesQuery1756824506000' + name = 'OptimizeDriveFilesQuery1756824506000' - async up(queryRunner) { - // Create optimized partial index for drive files query performance - // This index is specifically designed for the common query pattern: - // SELECT * FROM drive_file WHERE userId = ? AND folderId IS NULL ORDER BY id DESC - await queryRunner.query(`CREATE INDEX "IDX_drive_file_userid_null_folderid_id_desc" ON "drive_file" ("userId", ("folderId" IS NULL), "id" DESC)`); - } + async up(queryRunner) { + // Create optimized composite index for drive files query performance + await queryRunner.query(`DROP INDEX "IDX_860fa6f6c7df5bb887249fba22"`); + await queryRunner.query(`CREATE INDEX "IDX_a76118b66adb3228e0ee69c281" ON "drive_file" ("userId", "id" DESC)`); + } - async down(queryRunner) { - await queryRunner.query(`DROP INDEX "IDX_drive_file_userid_null_folderid_id_desc"`); - } + async down(queryRunner) { + await queryRunner.query(`DROP INDEX "IDX_a76118b66adb3228e0ee69c281"`); + await queryRunner.query(`CREATE INDEX "IDX_860fa6f6c7df5bb887249fba22" ON "drive_file" ("userId")`); + } } diff --git a/packages/backend/src/models/DriveFile.ts b/packages/backend/src/models/DriveFile.ts index 2bb672ea1c..570a327450 100644 --- a/packages/backend/src/models/DriveFile.ts +++ b/packages/backend/src/models/DriveFile.ts @@ -10,12 +10,11 @@ import { MiDriveFolder } from './DriveFolder.js'; @Entity('drive_file') @Index(['userId', 'folderId', 'id']) -@Index('IDX_drive_file_userid_null_folderid_id_desc', { synchronize: false }) +@Index(['userId', 'id']) export class MiDriveFile { @PrimaryColumn(id()) public id: string; - @Index() @Column({ ...id(), nullable: true,