From: Lee Clemens Date: Fri, 26 Oct 2018 22:32:21 +0000 (-0400) Subject: dbido: remove redundant mysql indexes X-Git-Tag: v2.11.0-rc1~123^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6418af3f0162df0755bdd2e2792d5875ef74f14b;p=icinga2 dbido: remove redundant mysql indexes --- diff --git a/lib/db_ido_mysql/schema/mysql.sql b/lib/db_ido_mysql/schema/mysql.sql index 6fec218c5..f63863839 100644 --- a/lib/db_ido_mysql/schema/mysql.sql +++ b/lib/db_ido_mysql/schema/mysql.sql @@ -692,8 +692,7 @@ CREATE TABLE IF NOT EXISTS icinga_hosts ( z_3d double default '0', config_hash varchar(64) DEFAULT NULL, PRIMARY KEY (host_id), - UNIQUE KEY instance_id (instance_id,config_type,host_object_id), - KEY host_object_id (host_object_id) + UNIQUE KEY instance_id (instance_id,config_type,host_object_id) ) ENGINE=InnoDB COMMENT='Host definitions'; -- -------------------------------------------------------- @@ -1181,8 +1180,7 @@ CREATE TABLE IF NOT EXISTS icinga_services ( icon_image_alt TEXT character set latin1, config_hash varchar(64) DEFAULT NULL, PRIMARY KEY (service_id), - UNIQUE KEY instance_id (instance_id,config_type,service_object_id), - KEY service_object_id (service_object_id) + UNIQUE KEY instance_id (instance_id,config_type,service_object_id) ) ENGINE=InnoDB COMMENT='Service definitions'; -- -------------------------------------------------------- @@ -1463,10 +1461,8 @@ ALTER TABLE icinga_systemcommands ADD COLUMN endpoint_object_id bigint default N -- EXTERNALCOMMANDS => entry_time -- instance_id -CREATE INDEX systemcommands_i_id_idx on icinga_systemcommands(instance_id); CREATE INDEX servicechecks_i_id_idx on icinga_servicechecks(instance_id); CREATE INDEX hostchecks_i_id_idx on icinga_hostchecks(instance_id); -CREATE INDEX eventhandlers_i_id_idx on icinga_eventhandlers(instance_id); CREATE INDEX externalcommands_i_id_idx on icinga_externalcommands(instance_id); -- time @@ -1481,40 +1477,22 @@ CREATE INDEX externalcommands_time_id_idx on icinga_externalcommands(entry_time) -- instance_id only -- realtime data -CREATE INDEX programstatus_i_id_idx on icinga_programstatus(instance_id); CREATE INDEX hoststatus_i_id_idx on icinga_hoststatus(instance_id); CREATE INDEX servicestatus_i_id_idx on icinga_servicestatus(instance_id); CREATE INDEX contactstatus_i_id_idx on icinga_contactstatus(instance_id); -CREATE INDEX comments_i_id_idx on icinga_comments(instance_id); -CREATE INDEX scheduleddowntime_i_id_idx on icinga_scheduleddowntime(instance_id); -CREATE INDEX runtimevariables_i_id_idx on icinga_runtimevariables(instance_id); CREATE INDEX customvariablestatus_i_id_idx on icinga_customvariablestatus(instance_id); -- config data -CREATE INDEX configfiles_i_id_idx on icinga_configfiles(instance_id); CREATE INDEX configfilevariables_i_id_idx on icinga_configfilevariables(instance_id); CREATE INDEX customvariables_i_id_idx on icinga_customvariables(instance_id); -CREATE INDEX commands_i_id_idx on icinga_commands(instance_id); -CREATE INDEX timeperiods_i_id_idx on icinga_timeperiods(instance_id); CREATE INDEX timeperiod_timeranges_i_id_idx on icinga_timeperiod_timeranges(instance_id); -CREATE INDEX contactgroups_i_id_idx on icinga_contactgroups(instance_id); CREATE INDEX contactgroup_members_i_id_idx on icinga_contactgroup_members(instance_id); -CREATE INDEX hostgroups_i_id_idx on icinga_hostgroups(instance_id); CREATE INDEX hostgroup_members_i_id_idx on icinga_hostgroup_members(instance_id); -CREATE INDEX servicegroups_i_id_idx on icinga_servicegroups(instance_id); CREATE INDEX servicegroup_members_i_id_idx on icinga_servicegroup_members(instance_id); -CREATE INDEX hostesc_i_id_idx on icinga_hostescalations(instance_id); -CREATE INDEX hostesc_contacts_i_id_idx on icinga_hostescalation_contacts(instance_id); -CREATE INDEX serviceesc_i_id_idx on icinga_serviceescalations(instance_id); -CREATE INDEX serviceesc_contacts_i_id_idx on icinga_serviceescalation_contacts(instance_id); -CREATE INDEX hostdependencies_i_id_idx on icinga_hostdependencies(instance_id); -CREATE INDEX contacts_i_id_idx on icinga_contacts(instance_id); CREATE INDEX contact_addresses_i_id_idx on icinga_contact_addresses(instance_id); CREATE INDEX contact_notifcommands_i_id_idx on icinga_contact_notificationcommands(instance_id); -CREATE INDEX hosts_i_id_idx on icinga_hosts(instance_id); CREATE INDEX host_parenthosts_i_id_idx on icinga_host_parenthosts(instance_id); CREATE INDEX host_contacts_i_id_idx on icinga_host_contacts(instance_id); -CREATE INDEX services_i_id_idx on icinga_services(instance_id); CREATE INDEX service_contacts_i_id_idx on icinga_service_contacts(instance_id); CREATE INDEX service_contactgroups_i_id_idx on icinga_service_contactgroups(instance_id); CREATE INDEX host_contactgroups_i_id_idx on icinga_host_contactgroups(instance_id); @@ -1574,7 +1552,6 @@ CREATE INDEX hostchks_h_obj_id_idx on icinga_hostchecks(host_object_id); CREATE INDEX servicechks_s_obj_id_idx on icinga_servicechecks(service_object_id); -- objects -CREATE INDEX objects_objtype_id_idx ON icinga_objects(objecttype_id); CREATE INDEX objects_name1_idx ON icinga_objects(name1); CREATE INDEX objects_name2_idx ON icinga_objects(name2); CREATE INDEX objects_inst_id_idx ON icinga_objects(instance_id); @@ -1643,10 +1620,6 @@ CREATE INDEX sla_idx_obj ON icinga_objects (objecttype_id, is_active, name1); -- #4985 CREATE INDEX commenthistory_delete_idx ON icinga_commenthistory (instance_id, comment_time, internal_comment_id); --- #10070 -CREATE INDEX idx_comments_object_id on icinga_comments(object_id); -CREATE INDEX idx_scheduleddowntime_object_id on icinga_scheduleddowntime(object_id); - -- #10066 CREATE INDEX idx_endpoints_object_id on icinga_endpoints(endpoint_object_id); CREATE INDEX idx_endpointstatus_object_id on icinga_endpointstatus(endpoint_object_id); @@ -1668,7 +1641,6 @@ CREATE INDEX idx_downtimes_session_del ON icinga_scheduleddowntime (instance_id, CREATE INDEX idx_statehistory_cleanup on icinga_statehistory(instance_id, state_time); -- #12435 -CREATE INDEX idx_customvariables_object_id on icinga_customvariables(object_id); CREATE INDEX idx_contactgroup_members_object_id on icinga_contactgroup_members(contact_object_id); CREATE INDEX idx_hostgroup_members_object_id on icinga_hostgroup_members(host_object_id); CREATE INDEX idx_servicegroup_members_object_id on icinga_servicegroup_members(service_object_id); diff --git a/lib/db_ido_mysql/schema/upgrade/2.11.0.sql b/lib/db_ido_mysql/schema/upgrade/2.11.0.sql new file mode 100644 index 000000000..b461a66d7 --- /dev/null +++ b/lib/db_ido_mysql/schema/upgrade/2.11.0.sql @@ -0,0 +1,40 @@ +-- ----------------------------------------- +-- upgrade path for Icinga 2.11.0 +-- +-- ----------------------------------------- +-- Copyright (c) 2018 Icinga Development Team (https://icinga.com/) +-- +-- Please check https://docs.icinga.com for upgrading information! +-- ----------------------------------------- + +ALTER TABLE `icinga_commands` DROP INDEX `commands_i_id_idx`; +ALTER TABLE `icinga_comments` DROP INDEX `idx_comments_object_id`; +ALTER TABLE `icinga_comments` DROP INDEX `comments_i_id_idx`; +ALTER TABLE `icinga_configfiles` DROP INDEX `configfiles_i_id_idx`; +ALTER TABLE `icinga_contactgroups` DROP INDEX `contactgroups_i_id_idx`; +ALTER TABLE `icinga_contacts` DROP INDEX `contacts_i_id_idx`; +ALTER TABLE `icinga_customvariables` DROP INDEX `idx_customvariables_object_id`; +ALTER TABLE `icinga_eventhandlers` DROP INDEX `eventhandlers_i_id_idx`; +ALTER TABLE `icinga_hostdependencies` DROP INDEX `hostdependencies_i_id_idx`; +ALTER TABLE `icinga_hostescalations` DROP INDEX `hostesc_i_id_idx`; +ALTER TABLE `icinga_hostescalation_contacts` DROP INDEX `hostesc_contacts_i_id_idx`; +ALTER TABLE `icinga_hostgroups` DROP INDEX `hostgroups_i_id_idx`; +ALTER TABLE `icinga_hosts` DROP INDEX `host_object_id`; +ALTER TABLE `icinga_hosts` DROP INDEX `hosts_i_id_idx`; +ALTER TABLE `icinga_objects` DROP INDEX `objects_objtype_id_idx`; +ALTER TABLE `icinga_programstatus` DROP INDEX `programstatus_i_id_idx`; +ALTER TABLE `icinga_runtimevariables` DROP INDEX `runtimevariables_i_id_idx`; +ALTER TABLE `icinga_scheduleddowntime` DROP INDEX `scheduleddowntime_i_id_idx`; +ALTER TABLE `icinga_scheduleddowntime` DROP INDEX `idx_scheduleddowntime_object_id`; +ALTER TABLE `icinga_serviceescalations` DROP INDEX `serviceesc_i_id_idx`; +ALTER TABLE `icinga_serviceescalation_contacts` DROP INDEX `serviceesc_contacts_i_id_idx`; +ALTER TABLE `icinga_servicegroups` DROP INDEX `servicegroups_i_id_idx`; +ALTER TABLE `icinga_services` DROP INDEX `services_i_id_idx`; +ALTER TABLE `icinga_services` DROP INDEX `service_object_id`; +ALTER TABLE `icinga_systemcommands` DROP INDEX `systemcommands_i_id_idx`; +ALTER TABLE `icinga_timeperiods` DROP INDEX `timeperiods_i_id_idx`; + +-- ----------------------------------------- +-- set dbversion (same as 2.11.0) +-- ----------------------------------------- +INSERT INTO icinga_dbversion (name, version, create_time, modify_time) VALUES ('idoutils', '1.15.0', NOW(), NOW()) ON DUPLICATE KEY UPDATE version='1.15.0', modify_time=NOW();