perf(backend): use (userId, id DESC) composite index
This commit is contained in:
parent
4ec9c3ea73
commit
c0b380bbf5
|
@ -4,16 +4,16 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export class OptimizeDriveFilesQuery1756824506000 {
|
export class OptimizeDriveFilesQuery1756824506000 {
|
||||||
name = 'OptimizeDriveFilesQuery1756824506000'
|
name = 'OptimizeDriveFilesQuery1756824506000'
|
||||||
|
|
||||||
async up(queryRunner) {
|
async up(queryRunner) {
|
||||||
// Create optimized partial index for drive files query performance
|
// Create optimized composite index for drive files query performance
|
||||||
// This index is specifically designed for the common query pattern:
|
await queryRunner.query(`DROP INDEX "IDX_860fa6f6c7df5bb887249fba22"`);
|
||||||
// SELECT * FROM drive_file WHERE userId = ? AND folderId IS NULL ORDER BY id DESC
|
await queryRunner.query(`CREATE INDEX "IDX_a76118b66adb3228e0ee69c281" ON "drive_file" ("userId", "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 down(queryRunner) {
|
async down(queryRunner) {
|
||||||
await queryRunner.query(`DROP INDEX "IDX_drive_file_userid_null_folderid_id_desc"`);
|
await queryRunner.query(`DROP INDEX "IDX_a76118b66adb3228e0ee69c281"`);
|
||||||
}
|
await queryRunner.query(`CREATE INDEX "IDX_860fa6f6c7df5bb887249fba22" ON "drive_file" ("userId")`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,12 +10,11 @@ import { MiDriveFolder } from './DriveFolder.js';
|
||||||
|
|
||||||
@Entity('drive_file')
|
@Entity('drive_file')
|
||||||
@Index(['userId', 'folderId', 'id'])
|
@Index(['userId', 'folderId', 'id'])
|
||||||
@Index('IDX_drive_file_userid_null_folderid_id_desc', { synchronize: false })
|
@Index(['userId', 'id'])
|
||||||
export class MiDriveFile {
|
export class MiDriveFile {
|
||||||
@PrimaryColumn(id())
|
@PrimaryColumn(id())
|
||||||
public id: string;
|
public id: string;
|
||||||
|
|
||||||
@Index()
|
|
||||||
@Column({
|
@Column({
|
||||||
...id(),
|
...id(),
|
||||||
nullable: true,
|
nullable: true,
|
||||||
|
|
Loading…
Reference in New Issue