GUACAMOLE-394: Cover both main object ID and "start_date" columns with an index for sake of correlated MAX(start_date) history queries.

This commit is contained in:
Michael Jumper
2017-12-11 23:11:57 -08:00
parent 58054719b3
commit dbd5b98250
5 changed files with 31 additions and 0 deletions

View File

@@ -336,6 +336,7 @@ CREATE TABLE `guacamole_connection_history` (
KEY `sharing_profile_id` (`sharing_profile_id`), KEY `sharing_profile_id` (`sharing_profile_id`),
KEY `start_date` (`start_date`), KEY `start_date` (`start_date`),
KEY `end_date` (`end_date`), KEY `end_date` (`end_date`),
KEY `connection_start_date` (`connection_id`, `start_date`),
CONSTRAINT `guacamole_connection_history_ibfk_1` CONSTRAINT `guacamole_connection_history_ibfk_1`
FOREIGN KEY (`user_id`) FOREIGN KEY (`user_id`)
@@ -368,6 +369,7 @@ CREATE TABLE guacamole_user_history (
KEY `user_id` (`user_id`), KEY `user_id` (`user_id`),
KEY `start_date` (`start_date`), KEY `start_date` (`start_date`),
KEY `end_date` (`end_date`), KEY `end_date` (`end_date`),
KEY `user_start_date` (`user_id`, `start_date`),
CONSTRAINT guacamole_user_history_ibfk_1 CONSTRAINT guacamole_user_history_ibfk_1
FOREIGN KEY (user_id) FOREIGN KEY (user_id)

View File

@@ -38,6 +38,12 @@ ALTER TABLE guacamole_connection
ALTER TABLE guacamole_connection_history ALTER TABLE guacamole_connection_history
ADD COLUMN remote_host VARCHAR(256) DEFAULT NULL; ADD COLUMN remote_host VARCHAR(256) DEFAULT NULL;
--
-- Add covering index for connection history connection and start date
--
ALTER TABLE guacamole_connection_history ADD KEY (connection_id, start_date);
-- --
-- User login/logout history -- User login/logout history
-- --
@@ -55,6 +61,7 @@ CREATE TABLE guacamole_user_history (
KEY `user_id` (`user_id`), KEY `user_id` (`user_id`),
KEY `start_date` (`start_date`), KEY `start_date` (`start_date`),
KEY `end_date` (`end_date`), KEY `end_date` (`end_date`),
KEY `user_start_date` (`user_id`, `start_date`),
CONSTRAINT guacamole_user_history_ibfk_1 CONSTRAINT guacamole_user_history_ibfk_1
FOREIGN KEY (user_id) FOREIGN KEY (user_id)

View File

@@ -438,6 +438,9 @@ CREATE INDEX guacamole_connection_history_start_date
CREATE INDEX guacamole_connection_history_end_date CREATE INDEX guacamole_connection_history_end_date
ON guacamole_connection_history(end_date); ON guacamole_connection_history(end_date);
CREATE INDEX guacamole_connection_history_connection_id_start_date
ON guacamole_connection_history(connection_id, start_date);
-- --
-- User login/logout history -- User login/logout history
-- --
@@ -468,6 +471,9 @@ CREATE INDEX guacamole_user_history_start_date
CREATE INDEX guacamole_user_history_end_date CREATE INDEX guacamole_user_history_end_date
ON guacamole_user_history(end_date); ON guacamole_user_history(end_date);
CREATE INDEX guacamole_user_history_user_id_start_date
ON guacamole_user_history(user_id, start_date);
-- --
-- User password history -- User password history
-- --

View File

@@ -38,6 +38,13 @@ ALTER TABLE guacamole_connection
ALTER TABLE guacamole_connection_history ALTER TABLE guacamole_connection_history
ADD COLUMN remote_host VARCHAR(256) DEFAULT NULL; ADD COLUMN remote_host VARCHAR(256) DEFAULT NULL;
--
-- Add covering index for connection history connection and start date
--
CREATE INDEX guacamole_connection_history_connection_id_start_date
ON guacamole_connection_history(connection_id, start_date);
-- --
-- User login/logout history -- User login/logout history
-- --
@@ -67,3 +74,6 @@ CREATE INDEX guacamole_user_history_start_date
CREATE INDEX guacamole_user_history_end_date CREATE INDEX guacamole_user_history_end_date
ON guacamole_user_history(end_date); ON guacamole_user_history(end_date);
CREATE INDEX guacamole_user_history_user_id_start_date
ON guacamole_user_history(user_id, start_date);

View File

@@ -502,6 +502,9 @@ CREATE NONCLUSTERED INDEX [IX_guacamole_connection_history_start_date]
CREATE NONCLUSTERED INDEX [IX_guacamole_connection_history_end_date] CREATE NONCLUSTERED INDEX [IX_guacamole_connection_history_end_date]
ON [guacamole_connection_history] ([end_date]); ON [guacamole_connection_history] ([end_date]);
CREATE NONCLUSTERED INDEX [IX_guacamole_connection_history_connection_id_start_date]
ON [guacamole_connection_history] ([connection_id], [start_date]);
GO GO
-- --
@@ -533,6 +536,9 @@ CREATE NONCLUSTERED INDEX [IX_guacamole_user_history_start_date]
CREATE NONCLUSTERED INDEX [IX_guacamole_user_history_end_date] CREATE NONCLUSTERED INDEX [IX_guacamole_user_history_end_date]
ON [guacamole_user_history] ([end_date]); ON [guacamole_user_history] ([end_date]);
CREATE NONCLUSTERED INDEX [IX_guacamole_user_history_user_id_start_date]
ON [guacamole_user_history] ([user_id], [start_date]);
GO GO
-- --