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.
This commit is contained in:
Steffen Jost 2023-09-06 15:22:37 +00:00
parent 7e756985ce
commit 52bb1db947

View File

@ -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