diff --git a/[SQL]/legacy.sql b/[SQL]/legacy.sql index 376dacc3..64dcc549 100644 --- a/[SQL]/legacy.sql +++ b/[SQL]/legacy.sql @@ -750,7 +750,8 @@ ALTER TABLE `addon_account` ALTER TABLE `addon_account_data` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `index_addon_account_data_account_name_owner` (`account_name`,`owner`), - ADD KEY `index_addon_account_data_account_name` (`account_name`); + ADD KEY `index_addon_account_data_account_name` (`account_name`), + ADD KEY `esx_addon_account_data_owner` (`owner`); -- -- Indexes for table `addon_inventory` @@ -765,13 +766,15 @@ ALTER TABLE `addon_inventory_items` ADD PRIMARY KEY (`id`), ADD KEY `index_addon_inventory_items_inventory_name_name` (`inventory_name`,`name`), ADD KEY `index_addon_inventory_items_inventory_name_name_owner` (`inventory_name`,`name`,`owner`), - ADD KEY `index_addon_inventory_inventory_name` (`inventory_name`); + ADD KEY `index_addon_inventory_inventory_name` (`inventory_name`), + ADD KEY `esx_addon_inventory_items_owner` (`owner`); -- -- Indexes for table `billing` -- ALTER TABLE `billing` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD KEY `esx_billing_identifier` (`identifier`); -- -- Indexes for table `cardealer_vehicles` @@ -791,7 +794,8 @@ ALTER TABLE `datastore` ALTER TABLE `datastore_data` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `index_datastore_data_name_owner` (`name`,`owner`), - ADD KEY `index_datastore_data_name` (`name`); + ADD KEY `index_datastore_data_name` (`name`), + ADD KEY `esx_datastore_data_owner` (`owner`); -- -- Indexes for table `items` @@ -822,7 +826,8 @@ ALTER TABLE `licenses` -- Indexes for table `owned_vehicles` -- ALTER TABLE `owned_vehicles` - ADD PRIMARY KEY (`plate`); + ADD PRIMARY KEY (`plate`), + ADD KEY `esx_owned_vehicles_owner` (`owner`); -- -- @@ -841,7 +846,8 @@ ALTER TABLE `rented_vehicles` -- Indexes for table `society_moneywash` -- ALTER TABLE `society_moneywash` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD KEY `esx_society_moneywash_identifier` (`identifier`); -- -- Indexes for table `users` @@ -857,7 +863,8 @@ ALTER TABLE `users` -- Indexes for table `user_licenses` -- ALTER TABLE `user_licenses` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD KEY `esx_user_licenses_owner` (`owner`); -- -- Indexes for table `vehicle_categories` diff --git a/[core]/es_extended/server/migration/v1.14.2/multicharDeleteIndexes/main.lua b/[core]/es_extended/server/migration/v1.14.2/multicharDeleteIndexes/main.lua new file mode 100644 index 00000000..5915bd77 --- /dev/null +++ b/[core]/es_extended/server/migration/v1.14.2/multicharDeleteIndexes/main.lua @@ -0,0 +1,53 @@ +local esxVersion = "v1.14.2" + +Core.Migrations = Core.Migrations or {} +Core.Migrations[esxVersion] = Core.Migrations[esxVersion] or {} + +if GetResourceKvpInt(("esx_migration:%s"):format(esxVersion)) == 1 then + return +end + +local targets = { + { table = "billing", column = "identifier" }, + { table = "owned_vehicles", column = "owner" }, + { table = "user_licenses", column = "owner" }, + { table = "society_moneywash", column = "identifier" }, + { table = "addon_account_data", column = "owner" }, + { table = "addon_inventory_items", column = "owner" }, + { table = "datastore_data", column = "owner" }, +} + +---@return boolean restartRequired +Core.Migrations[esxVersion].multicharDeleteIndexes = function() + print("^4[esx_migration:v1.14.2:multicharDeleteIndexes]^7 Indexing character deletion columns.") + + for i = 1, #targets do + local target = targets[i] + + local tableExists = MySQL.scalar.await([[ + SELECT COUNT(*) + FROM INFORMATION_SCHEMA.TABLES + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = ? + ]], { target.table }) + + if tableExists ~= 0 then + local leadingIndex = MySQL.scalar.await([[ + SELECT COUNT(*) + FROM INFORMATION_SCHEMA.STATISTICS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = ? + AND COLUMN_NAME = ? + AND SEQ_IN_INDEX = 1 + ]], { target.table, target.column }) + + if leadingIndex == 0 then + MySQL.update.await(("CREATE INDEX `esx_%s_%s` ON `%s` (`%s`)"):format(target.table, target.column, target.table, target.column)) + print(("^4[esx_migration:v1.14.2:multicharDeleteIndexes]^7 Indexed ^5%s.%s^7."):format(target.table, target.column)) + end + end + end + + print("^4[esx_migration:v1.14.2:multicharDeleteIndexes]^7 Migration complete.") + return false +end