diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2026-03-17 11:44:31 +0100 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2026-03-17 11:44:31 +0100 |
| commit | de9d2e5415f7b39c2210e6c8193b216daa309219 (patch) | |
| tree | 431ea469c74c115174b4edeab90b10bb214116af /db | |
| parent | 0e093884f4dee09bf4dd7101699e4eac5360786a (diff) | |
improve performance of querying studygroup proposals in the according widget, fixes #6363
Closes #6363
Merge request studip/studip!4826
Diffstat (limited to 'db')
| -rw-r--r-- | db/migrations/6.0.54_add_keys_for_studygroup_proposals.php | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/db/migrations/6.0.54_add_keys_for_studygroup_proposals.php b/db/migrations/6.0.54_add_keys_for_studygroup_proposals.php new file mode 100644 index 0000000..11bae6f --- /dev/null +++ b/db/migrations/6.0.54_add_keys_for_studygroup_proposals.php @@ -0,0 +1,59 @@ +<?php +/** + * @see https://gitlab.studip.de/studip/studip/-/issues/6363 + */ +final class AddKeysForStudygroupProposals extends Migration +{ + public function description() + { + return 'Add keys for the studygroup proposals query in MyStudygroupsController'; + } + + protected function up() + { + $query = "ALTER TABLE `seminare` + DROP INDEX `status`, + ADD INDEX `status_mkdate_seminar` (`status`, `mkdate`, `seminar_id`)"; + DBManager::get()->exec($query); + + $query = "ALTER TABLE `mvv_stg_stgteil` + DROP INDEX `stgteil_id`, + ADD INDEX `stgteil_studiengang` (`stgteil_id`, `studiengang_id`)"; + DBManager::get()->exec($query); + + $query = "ALTER TABLE `mvv_stgteil` + DROP INDEX `fach_id`, + ADD INDEX `fach_stgteil` (`fach_id`, `stgteil_id`)"; + DBManager::get()->exec($query); + + $query = "ALTER TABLE `studygroup_stgteil` + DROP INDEX `studygroup_id_2`, + DROP INDEX `stgteil_id`, + ADD INDEX `stgteil_studygroup` (`stgteil_id`, `studygroup_id`)"; + DBManager::get()->exec($query); + } + + protected function down() + { + $query = "ALTER TABLE `studygroup_stgteil` + DROP INDEX `stgteil_studygroup`, + ADD INDEX `stgteil_id` (`stgteil_id`), + ADD INDEX `studygroup_id_2` (`studygroup_id`)"; + DBManager::get()->exec($query); + + $query = "ALTER TABLE `mvv_stgteil` + DROP INDEX `fach_stgteil`, + ADD INDEX `fach_id` (`fach_id`)"; + DBManager::get()->exec($query); + + $query = "ALTER TABLE `mvv_stg_stgteil` + DROP INDEX `stgteil_studiengang`, + ADD INDEX `stgteil_id` (`stgteil_id`)"; + DBManager::get()->exec($query); + + $query = "ALTER TABLE `seminare` + DROP INDEX `status_mkdate_seminar`, + ADD INDEX `status` (`status`)"; + DBManager::get()->exec($query); + } +} |
