diff --git a/packages/backend/migration/1756824506000-optimize-drive-files-query.js b/packages/backend/migration/1756824506000-optimize-drive-files-query.js new file mode 100644 index 0000000000..e6b72c426e --- /dev/null +++ b/packages/backend/migration/1756824506000-optimize-drive-files-query.js @@ -0,0 +1,19 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +export class OptimizeDriveFilesQuery1756824506000 { + name = 'OptimizeDriveFilesQuery1756824506000' + + 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_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 7b03e3e494..570a327450 100644 --- a/packages/backend/src/models/DriveFile.ts +++ b/packages/backend/src/models/DriveFile.ts @@ -10,11 +10,11 @@ import { MiDriveFolder } from './DriveFolder.js'; @Entity('drive_file') @Index(['userId', 'folderId', 'id']) +@Index(['userId', 'id']) export class MiDriveFile { @PrimaryColumn(id()) public id: string; - @Index() @Column({ ...id(), nullable: true,