From 52bb1db9470e1c1d0fd7a7490fdf5570320f75c3 Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Wed, 6 Sep 2023 15:22:37 +0000 Subject: [PATCH] chore(db): create indices for frequent filter conditions Indices are automatically created for all primary keys and all unique columns, but for frequent filter conditions that are not unique and which yield a small result set, and index speeds up computation. --- src/Model/Migration/Definitions.hs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Model/Migration/Definitions.hs b/src/Model/Migration/Definitions.hs index cbb5c548b..57dff6166 100644 --- a/src/Model/Migration/Definitions.hs +++ b/src/Model/Migration/Definitions.hs @@ -113,7 +113,7 @@ derivePersistFieldPathPiece ''ManualMigration migrateManual :: Migration migrateManual = do - mapM_ (uncurry addIndex) + mapM_ (uncurry addIndex) -- NOTE: Indices are automatically created for primary keys and unique columns; manually create them frequent filter conditions that small results for speed up [ ("material_file_content", "CREATE INDEX material_file_content ON material_file (content)" ) , ("course_news_file_content", "CREATE INDEX course_news_file_content ON course_news_file (content)" ) , ("sheet_file_content", "CREATE INDEX sheet_file_content ON sheet_file (content)" ) @@ -132,7 +132,12 @@ migrateManual = do , ("study_features_relevance_cached", "CREATE INDEX study_features_relevance_cached ON \"study_features\" (relevance_cached)") , ("submission_rating_by", "CREATE INDEX submission_rating_by ON submission (rating_by) WHERE rating_by IS NOT NULL" ) , ("exam_corrector_user", "CREATE INDEX exam_corrector_user ON exam_corrector (\"user\")" ) - , ("submission_rating_time", "CREATE INDEX submission_rating_time ON submission (rating_time)" ) + , ("submission_rating_time", "CREATE INDEX submission_rating_time ON submission (rating_time)" ) + , ("qualification_user_block_quser" , "CREATE INDEX qualification_user_block_quser ON qualification_user_block (qualification_user)") + , ("qualification_user_block_unblock", "CREATE INDEX qualification_user_block_unblock ON qualification_user_block (unblock)") + , ("qualification_user_block_from" , "CREATE INDEX qualification_user_block_unblock ON qualification_user_block (from)") + , ("print_job_apc_ident" , "CREATE INDEX print_job_apc_ident ON print_job (apc_ident)") + , ("user_avs_card_person_id" , "CREATE INDEX user_avs_card_person_id ON user_avs_card (person_id)") ] where addIndex :: Text -> Sql -> Migration