From e05f5ee751c0877295cfea83eae3b369e4e22386 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 15 Nov 2024 22:31:30 +0000 Subject: [PATCH 1/2] Add missing liquid db indexes --- backend/src/api/database-migration.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 0c17ab9f1..9ae34aa0a 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -7,7 +7,7 @@ import cpfpRepository from '../repositories/CpfpRepository'; import { RowDataPacket } from 'mysql2'; class DatabaseMigration { - private static currentVersion = 91; + private static currentVersion = 92; private queryTimeout = 3600_000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; @@ -775,6 +775,25 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `blocks_audits` ADD INDEX `time` (`time`)'); await this.updateToSchemaVersion(91); } + + if (databaseSchemaVersion < 92 && config.MEMPOOL.NETWORK === 'liquid') { + // elements_pegs + await this.$executeQuery('ALTER TABLE `elements_pegs` ADD INDEX `block` (`block`)'); + await this.$executeQuery('ALTER TABLE `elements_pegs` ADD INDEX `datetime` (`datetime`)'); + await this.$executeQuery('ALTER TABLE `elements_pegs` ADD INDEX `amount` (`amount`)'); + await this.$executeQuery('ALTER TABLE `elements_pegs` ADD INDEX `bitcoinaddress` (`bitcoinaddress`)'); + await this.$executeQuery('ALTER TABLE `elements_pegs` ADD INDEX `bitcointxid` (`bitcointxid`)'); + + // federation_txos + await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `unspent` (`unspent`)'); + await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `lastblockupdate` (`lastblockupdate`)'); + await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `blocktime` (`blocktime`)'); + await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `emergencyKey` (`emergencyKey`)'); + await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `expiredAt` (`expiredAt`)'); + await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `balance` (`balance`)'); + + await this.updateToSchemaVersion(85); + } } /** From bfd771056d31acc13a23d8f56ab9a3a9e3c5f5db Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sat, 16 Nov 2024 00:01:13 +0000 Subject: [PATCH 2/2] split new liquid db indexes into separate migrations --- backend/src/api/database-migration.ts | 40 ++++++++++++++++----------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 9ae34aa0a..35d45433c 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -7,7 +7,7 @@ import cpfpRepository from '../repositories/CpfpRepository'; import { RowDataPacket } from 'mysql2'; class DatabaseMigration { - private static currentVersion = 92; + private static currentVersion = 93; private queryTimeout = 3600_000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; @@ -776,23 +776,31 @@ class DatabaseMigration { await this.updateToSchemaVersion(91); } + // elements_pegs indexes if (databaseSchemaVersion < 92 && config.MEMPOOL.NETWORK === 'liquid') { - // elements_pegs - await this.$executeQuery('ALTER TABLE `elements_pegs` ADD INDEX `block` (`block`)'); - await this.$executeQuery('ALTER TABLE `elements_pegs` ADD INDEX `datetime` (`datetime`)'); - await this.$executeQuery('ALTER TABLE `elements_pegs` ADD INDEX `amount` (`amount`)'); - await this.$executeQuery('ALTER TABLE `elements_pegs` ADD INDEX `bitcoinaddress` (`bitcoinaddress`)'); - await this.$executeQuery('ALTER TABLE `elements_pegs` ADD INDEX `bitcointxid` (`bitcointxid`)'); + await this.$executeQuery(` + ALTER TABLE \`elements_pegs\` + ADD INDEX \`block\` (\`block\`), + ADD INDEX \`datetime\` (\`datetime\`), + ADD INDEX \`amount\` (\`amount\`), + ADD INDEX \`bitcoinaddress\` (\`bitcoinaddress\`), + ADD INDEX \`bitcointxid\` (\`bitcointxid\`) + `); + await this.updateToSchemaVersion(92); + } - // federation_txos - await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `unspent` (`unspent`)'); - await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `lastblockupdate` (`lastblockupdate`)'); - await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `blocktime` (`blocktime`)'); - await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `emergencyKey` (`emergencyKey`)'); - await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `expiredAt` (`expiredAt`)'); - await this.$executeQuery('ALTER TABLE `federation_txos` ADD INDEX `balance` (`balance`)'); - - await this.updateToSchemaVersion(85); + // federation_txos indexes + if (databaseSchemaVersion < 93 && config.MEMPOOL.NETWORK === 'liquid') { + await this.$executeQuery(` + ALTER TABLE \`federation_txos\` + ADD INDEX \`unspent\` (\`unspent\`), + ADD INDEX \`lastblockupdate\` (\`lastblockupdate\`), + ADD INDEX \`blocktime\` (\`blocktime\`), + ADD INDEX \`emergencyKey\` (\`emergencyKey\`), + ADD INDEX \`expiredAt\` (\`expiredAt\`), + ADD INDEX \`balance\` (\`balance\`) + `); + await this.updateToSchemaVersion(93); } }