diff options
author | Chocobozzz <me@florianbigard.com> | 2021-03-03 11:24:16 +0100 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2021-03-03 11:24:16 +0100 |
commit | 534556052ed4aab539325dccaa16c6dd2acecf73 (patch) | |
tree | 19e6c0a0729196e13eeab66398b6963e424b0181 | |
parent | 6c9c3b7b14411a854c8dcf8583d56b314e45a4ce (diff) | |
download | PeerTube-534556052ed4aab539325dccaa16c6dd2acecf73.tar.gz PeerTube-534556052ed4aab539325dccaa16c6dd2acecf73.tar.zst PeerTube-534556052ed4aab539325dccaa16c6dd2acecf73.zip |
Optimize views sort sql query
-rw-r--r-- | server/initializers/constants.ts | 2 | ||||
-rw-r--r-- | server/initializers/migrations/0610-views-index.ts | 20 | ||||
-rw-r--r-- | server/models/video/video.ts | 7 |
3 files changed, 27 insertions, 2 deletions
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 6aaef3aa2..1623e6f42 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts | |||
@@ -24,7 +24,7 @@ import { CONFIG, registerConfigChangedHandler } from './config' | |||
24 | 24 | ||
25 | // --------------------------------------------------------------------------- | 25 | // --------------------------------------------------------------------------- |
26 | 26 | ||
27 | const LAST_MIGRATION_VERSION = 605 | 27 | const LAST_MIGRATION_VERSION = 610 |
28 | 28 | ||
29 | // --------------------------------------------------------------------------- | 29 | // --------------------------------------------------------------------------- |
30 | 30 | ||
diff --git a/server/initializers/migrations/0610-views-index.ts b/server/initializers/migrations/0610-views-index.ts new file mode 100644 index 000000000..02ee21172 --- /dev/null +++ b/server/initializers/migrations/0610-views-index.ts | |||
@@ -0,0 +1,20 @@ | |||
1 | import * as Sequelize from 'sequelize' | ||
2 | |||
3 | async function up (utils: { | ||
4 | transaction: Sequelize.Transaction | ||
5 | queryInterface: Sequelize.QueryInterface | ||
6 | sequelize: Sequelize.Sequelize | ||
7 | db: any | ||
8 | }): Promise<void> { | ||
9 | |||
10 | await utils.sequelize.query('DROP INDEX IF EXISTS video_views;') | ||
11 | } | ||
12 | |||
13 | function down (options) { | ||
14 | throw new Error('Not implemented.') | ||
15 | } | ||
16 | |||
17 | export { | ||
18 | up, | ||
19 | down | ||
20 | } | ||
diff --git a/server/models/video/video.ts b/server/models/video/video.ts index b4c7da655..b3543ddf2 100644 --- a/server/models/video/video.ts +++ b/server/models/video/video.ts | |||
@@ -426,7 +426,12 @@ export type AvailableForListIDsOptions = { | |||
426 | ] | 426 | ] |
427 | }, | 427 | }, |
428 | { fields: [ 'duration' ] }, | 428 | { fields: [ 'duration' ] }, |
429 | { fields: [ 'views' ] }, | 429 | { |
430 | fields: [ | ||
431 | { name: 'views', order: 'DESC' }, | ||
432 | { name: 'id', order: 'ASC' } | ||
433 | ] | ||
434 | }, | ||
430 | { fields: [ 'channelId' ] }, | 435 | { fields: [ 'channelId' ] }, |
431 | { | 436 | { |
432 | fields: [ 'originallyPublishedAt' ], | 437 | fields: [ 'originallyPublishedAt' ], |