From 9467f756e265337432e811695891845fea5589f5 Mon Sep 17 00:00:00 2001 From: farhatahmad <35435341+farhatahmad@users.noreply.github.com> Date: Thu, 23 May 2019 16:56:15 -0400 Subject: [PATCH] Added Indexs to improve db performance (#551) --- .../20190522193828_add_index_to_settings.rb | 23 +++++++++++++++++ .../20190522194037_add_index_to_features.rb | 23 +++++++++++++++++ .../20190522194445_add_index_to_users.rb | 25 +++++++++++++++++++ ...20190522195242_add_index_to_invitations.rb | 24 ++++++++++++++++++ db/schema.rb | 21 ++++++++++------ 5 files changed, 109 insertions(+), 7 deletions(-) create mode 100644 db/migrate/20190522193828_add_index_to_settings.rb create mode 100644 db/migrate/20190522194037_add_index_to_features.rb create mode 100644 db/migrate/20190522194445_add_index_to_users.rb create mode 100644 db/migrate/20190522195242_add_index_to_invitations.rb diff --git a/db/migrate/20190522193828_add_index_to_settings.rb b/db/migrate/20190522193828_add_index_to_settings.rb new file mode 100644 index 00000000..6c1129b3 --- /dev/null +++ b/db/migrate/20190522193828_add_index_to_settings.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/. +# +# Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below). +# +# This program is free software; you can redistribute it and/or modify it under the +# terms of the GNU Lesser General Public License as published by the Free Software +# Foundation; either version 3.0 of the License, or (at your option) any later +# version. +# +# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License along +# with BigBlueButton; if not, see . + +class AddIndexToSettings < ActiveRecord::Migration[5.0] + def change + add_index :settings, :provider + end +end diff --git a/db/migrate/20190522194037_add_index_to_features.rb b/db/migrate/20190522194037_add_index_to_features.rb new file mode 100644 index 00000000..06071354 --- /dev/null +++ b/db/migrate/20190522194037_add_index_to_features.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/. +# +# Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below). +# +# This program is free software; you can redistribute it and/or modify it under the +# terms of the GNU Lesser General Public License as published by the Free Software +# Foundation; either version 3.0 of the License, or (at your option) any later +# version. +# +# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License along +# with BigBlueButton; if not, see . + +class AddIndexToFeatures < ActiveRecord::Migration[5.0] + def change + add_index :features, :name + end +end diff --git a/db/migrate/20190522194445_add_index_to_users.rb b/db/migrate/20190522194445_add_index_to_users.rb new file mode 100644 index 00000000..63f76348 --- /dev/null +++ b/db/migrate/20190522194445_add_index_to_users.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/. +# +# Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below). +# +# This program is free software; you can redistribute it and/or modify it under the +# terms of the GNU Lesser General Public License as published by the Free Software +# Foundation; either version 3.0 of the License, or (at your option) any later +# version. +# +# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License along +# with BigBlueButton; if not, see . + +class AddIndexToUsers < ActiveRecord::Migration[5.0] + def change + add_index :users, :email + add_index :users, :provider + add_index :users, :created_at + end +end diff --git a/db/migrate/20190522195242_add_index_to_invitations.rb b/db/migrate/20190522195242_add_index_to_invitations.rb new file mode 100644 index 00000000..2762a137 --- /dev/null +++ b/db/migrate/20190522195242_add_index_to_invitations.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/. +# +# Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below). +# +# This program is free software; you can redistribute it and/or modify it under the +# terms of the GNU Lesser General Public License as published by the Free Software +# Foundation; either version 3.0 of the License, or (at your option) any later +# version. +# +# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License along +# with BigBlueButton; if not, see . + +class AddIndexToInvitations < ActiveRecord::Migration[5.0] + def change + add_index :invitations, :invite_token + add_index :invitations, :provider + end +end diff --git a/db/schema.rb b/db/schema.rb index 7f282bd1..a09c7884 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20190507190710) do +ActiveRecord::Schema.define(version: 20190522195242) do create_table "features", force: :cascade do |t| t.integer "setting_id" @@ -19,6 +19,7 @@ ActiveRecord::Schema.define(version: 20190507190710) do t.boolean "enabled", default: false t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.index ["name"], name: "index_features_on_name" t.index ["setting_id"], name: "index_features_on_setting_id" end @@ -28,6 +29,8 @@ ActiveRecord::Schema.define(version: 20190507190710) do t.string "invite_token" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.index ["invite_token"], name: "index_invitations_on_invite_token" + t.index ["provider"], name: "index_invitations_on_provider" end create_table "roles", force: :cascade do |t| @@ -46,11 +49,11 @@ ActiveRecord::Schema.define(version: 20190507190710) do t.string "name" t.string "uid" t.string "bbb_id" - t.integer "sessions", default: 0 + t.integer "sessions", default: 0 t.datetime "last_session" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.string "room_settings", default: "{ }" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.string "room_settings", default: "{ }" t.string "moderator_pw" t.string "attendee_pw" t.index ["bbb_id"], name: "index_rooms_on_bbb_id" @@ -65,6 +68,7 @@ ActiveRecord::Schema.define(version: 20190507190710) do t.string "provider", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.index ["provider"], name: "index_settings_on_provider" end create_table "users", force: :cascade do |t| @@ -78,15 +82,18 @@ ActiveRecord::Schema.define(version: 20190507190710) do t.string "image" t.string "password_digest" t.boolean "accepted_terms", default: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false t.boolean "email_verified", default: false t.string "language", default: "default" t.string "reset_digest" t.datetime "reset_sent_at" t.string "activation_digest" t.datetime "activated_at" + t.index ["created_at"], name: "index_users_on_created_at" + t.index ["email"], name: "index_users_on_email" t.index ["password_digest"], name: "index_users_on_password_digest", unique: true + t.index ["provider"], name: "index_users_on_provider" t.index ["room_id"], name: "index_users_on_room_id" end