Replace notes(userId) index with (userId, id)
Some checks failed
Lint / pnpm_install (pull_request) Successful in 2m14s
Test (backend) / unit (22.x) (pull_request) Successful in 7m8s
Test (backend) / e2e (22.x) (pull_request) Failing after 9m26s
Test (frontend) / vitest (22.x) (pull_request) Successful in 3m0s
Test (production install and build) / production (22.x) (pull_request) Successful in 2m37s
Test (backend) / validate-api-json (22.x) (pull_request) Successful in 3m16s
Lint / lint (backend) (pull_request) Successful in 3m1s
Lint / lint (frontend) (pull_request) Successful in 9m53s
Lint / lint (misskey-js) (pull_request) Successful in 2m22s
Lint / lint (sw) (pull_request) Successful in 3m24s
Lint / typecheck (backend) (pull_request) Successful in 3m17s
Lint / typecheck (misskey-js) (pull_request) Successful in 2m22s
Some checks failed
Lint / pnpm_install (pull_request) Successful in 2m14s
Test (backend) / unit (22.x) (pull_request) Successful in 7m8s
Test (backend) / e2e (22.x) (pull_request) Failing after 9m26s
Test (frontend) / vitest (22.x) (pull_request) Successful in 3m0s
Test (production install and build) / production (22.x) (pull_request) Successful in 2m37s
Test (backend) / validate-api-json (22.x) (pull_request) Successful in 3m16s
Lint / lint (backend) (pull_request) Successful in 3m1s
Lint / lint (frontend) (pull_request) Successful in 9m53s
Lint / lint (misskey-js) (pull_request) Successful in 2m22s
Lint / lint (sw) (pull_request) Successful in 3m24s
Lint / typecheck (backend) (pull_request) Successful in 3m17s
Lint / typecheck (misskey-js) (pull_request) Successful in 2m22s
This improves performance of queries searching posts by a given user, optionally with a provided range of dates, and then using ORDER BY to sort posts by date. Examples of such queries include: viewing posts by a given user, as well as checking when the last post by a given user was written for Mastodon API.
This commit is contained in:
parent
6b4f96a94b
commit
93dba136ab
2 changed files with 12 additions and 0 deletions
|
@ -0,0 +1,11 @@
|
||||||
|
export class NoteUserIdIdIndex1736888704471 {
|
||||||
|
name = 'NoteUserIdIdIndex1736888704471'
|
||||||
|
|
||||||
|
async up(queryRunner) {
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_note_userId_id" ON "note" ("userId", "id") `);
|
||||||
|
}
|
||||||
|
|
||||||
|
async down(queryRunner) {
|
||||||
|
await queryRunner.query(`DROP INDEX "public"."IDX_note_userId_id"`);
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,6 +15,7 @@ import type { MiDriveFile } from './DriveFile.js';
|
||||||
@Index('IDX_NOTE_MENTIONS', { synchronize: false })
|
@Index('IDX_NOTE_MENTIONS', { synchronize: false })
|
||||||
@Index('IDX_NOTE_FILE_IDS', { synchronize: false })
|
@Index('IDX_NOTE_FILE_IDS', { synchronize: false })
|
||||||
@Index('IDX_NOTE_VISIBLE_USER_IDS', { synchronize: false })
|
@Index('IDX_NOTE_VISIBLE_USER_IDS', { synchronize: false })
|
||||||
|
@Index('IDX_note_userId_id', ['userId', 'id'])
|
||||||
export class MiNote {
|
export class MiNote {
|
||||||
@PrimaryColumn(id())
|
@PrimaryColumn(id())
|
||||||
public id: string;
|
public id: string;
|
||||||
|
|
Loading…
Reference in a new issue