From aabe286e4b44f835030c06fe08a01c5c0ea25673 Mon Sep 17 00:00:00 2001 From: ulferts Date: Wed, 4 Aug 2021 16:49:32 +0200 Subject: [PATCH] add index on notification settings columns expected to have be distributed unevenly --- ...0802114054_add_notification_setting_options.rb | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/db/migrate/20210802114054_add_notification_setting_options.rb b/db/migrate/20210802114054_add_notification_setting_options.rb index 84ae52751d..fe7e05ee21 100644 --- a/db/migrate/20210802114054_add_notification_setting_options.rb +++ b/db/migrate/20210802114054_add_notification_setting_options.rb @@ -2,16 +2,19 @@ class AddNotificationSettingOptions < ActiveRecord::Migration[6.1] def change add_notification_settings_options update_notified_events - - # TODO: add index to all boolean fields end def add_notification_settings_options change_table :notification_settings, bulk: true do |t| - t.boolean :work_package_commented, default: false - t.boolean :work_package_created, default: false - t.boolean :work_package_processed, default: false - t.boolean :work_package_prioritized, default: false + # Adding indices here is probably useful as most of those are expected to be false + # and we are searching for those that are true. + # The columns watched, involved and mentioned will probably be true most of the time + # so having an index there should not improve speed. + t.boolean :work_package_commented, default: false, index: true + t.boolean :work_package_created, default: false, index: true + t.boolean :work_package_processed, default: false, index: true + t.boolean :work_package_prioritized, default: false, index: true + t.index :all end end