Optimize some indices and queries
This commit is contained in:
parent
4a3ffe07e8
commit
1c22fe653c
3 changed files with 71 additions and 33 deletions
39
ts/sql/migrations/74-optimize-convo-open.ts
Normal file
39
ts/sql/migrations/74-optimize-convo-open.ts
Normal file
|
@ -0,0 +1,39 @@
|
|||
// Copyright 2023 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import type { Database } from '@signalapp/better-sqlite3';
|
||||
|
||||
import type { LoggerType } from '../../types/Logging';
|
||||
|
||||
export default function updateToSchemaVersion74(
|
||||
currentVersion: number,
|
||||
db: Database,
|
||||
logger: LoggerType
|
||||
): void {
|
||||
if (currentVersion >= 74) {
|
||||
return;
|
||||
}
|
||||
|
||||
db.transaction(() => {
|
||||
db.exec(
|
||||
`
|
||||
-- Previously: (isUserInitiatedMessage)
|
||||
DROP INDEX message_user_initiated;
|
||||
|
||||
CREATE INDEX message_user_initiated ON messages (conversationId, isUserInitiatedMessage);
|
||||
|
||||
-- Previously: (unread, conversationId)
|
||||
DROP INDEX reactions_unread;
|
||||
|
||||
CREATE INDEX reactions_unread ON reactions (
|
||||
conversationId,
|
||||
unread
|
||||
);
|
||||
`
|
||||
);
|
||||
|
||||
db.pragma('user_version = 74');
|
||||
})();
|
||||
|
||||
logger.info('updateToSchemaVersion74: success!');
|
||||
}
|
|
@ -49,6 +49,7 @@ import updateToSchemaVersion70 from './70-story-reply-index';
|
|||
import updateToSchemaVersion71 from './71-merge-notifications';
|
||||
import updateToSchemaVersion72 from './72-optimize-call-id-message-lookup';
|
||||
import updateToSchemaVersion73 from './73-remove-phone-number-discovery';
|
||||
import updateToSchemaVersion74 from './74-optimize-convo-open';
|
||||
|
||||
function updateToSchemaVersion1(
|
||||
currentVersion: number,
|
||||
|
@ -1967,6 +1968,7 @@ export const SCHEMA_VERSIONS = [
|
|||
updateToSchemaVersion71,
|
||||
updateToSchemaVersion72,
|
||||
updateToSchemaVersion73,
|
||||
updateToSchemaVersion74,
|
||||
];
|
||||
|
||||
export function updateSchema(db: Database, logger: LoggerType): void {
|
||||
|
@ -1999,6 +2001,9 @@ export function updateSchema(db: Database, logger: LoggerType): void {
|
|||
}
|
||||
|
||||
if (userVersion !== maxUserVersion) {
|
||||
const start = Date.now();
|
||||
db.pragma('optimize');
|
||||
const duration = Date.now() - start;
|
||||
logger.info(`updateSchema: optimize took ${duration}ms`);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue