From 9c077220b46555b1d40460aa83e49bc85e120d9c Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Tue, 2 Jan 2024 16:05:59 +0100 Subject: [PATCH] sql: Create indexes on group_jobs_inq and group_jobs_running A select on `(group_jobs_inq > 0 OR group_jobs_running > 0)` is done in the main loop on each daemon. Add two indexes to drastically reduce the load on the MySQL server. --- mysql/create_tables.sql | 4 +++- mysql/migrate_018_add_group_indexes.sql | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 mysql/migrate_018_add_group_indexes.sql diff --git a/mysql/create_tables.sql b/mysql/create_tables.sql index 19a76b31..85334708 100644 --- a/mysql/create_tables.sql +++ b/mysql/create_tables.sql @@ -62,7 +62,9 @@ CREATE TABLE IF NOT EXISTS mxq_group ( dependency_of_group INT8 UNSIGNED NULL DEFAULT NULL, INDEX(group_id), - INDEX(group_name) + INDEX(group_name), + INDEX(group_jobs_inq), + INDEX(group_jobs_running) ) DEFAULT CHARSET=latin1; CREATE TABLE IF NOT EXISTS mxq_job ( diff --git a/mysql/migrate_018_add_group_indexes.sql b/mysql/migrate_018_add_group_indexes.sql new file mode 100644 index 00000000..4615a3ad --- /dev/null +++ b/mysql/migrate_018_add_group_indexes.sql @@ -0,0 +1,2 @@ +CREATE INDEX group_jobs_inq ON mxq_group(group_jobs_inq); +CREATE INDEX group_jobs_running ON mxq_group(group_jobs_running);