From d1c5dba667a225bbafaddddb803880cbacd8b0cc Mon Sep 17 00:00:00 2001 From: Will Bradley Date: Thu, 20 Nov 2014 12:56:28 -0700 Subject: [PATCH] Adding indexes and speeding up doorlog query --- app/models/door_log.rb | 2 +- db/migrate/20141120194112_add_indexes_to_door_log.rb | 6 ++++++ db/schema.rb | 5 ++++- 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20141120194112_add_indexes_to_door_log.rb diff --git a/app/models/door_log.rb b/app/models/door_log.rb index ec06783..1a2676f 100755 --- a/app/models/door_log.rb +++ b/app/models/door_log.rb @@ -87,7 +87,7 @@ class DoorLog < ActiveRecord::Base end def self.show_status - door_logs = DoorLog.where(key: ["door_1_locked","door_2_locked"]).order('created_at DESC').take(2) + door_logs = DoorLog.order('created_at DESC').where(key: ["door_1_locked","door_2_locked"]).limit(2) door_1_locked = parse_locked_status(door_logs, "door_1_locked") door_2_locked = parse_locked_status(door_logs, "door_2_locked") diff --git a/db/migrate/20141120194112_add_indexes_to_door_log.rb b/db/migrate/20141120194112_add_indexes_to_door_log.rb new file mode 100644 index 0000000..474d1b7 --- /dev/null +++ b/db/migrate/20141120194112_add_indexes_to_door_log.rb @@ -0,0 +1,6 @@ +class AddIndexesToDoorLog < ActiveRecord::Migration + def change + add_index :door_logs, :key + add_index :door_logs, :created_at + end +end diff --git a/db/schema.rb b/db/schema.rb index 1f13e16..df13d9b 100755 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20140411024809) do +ActiveRecord::Schema.define(:version => 20141120194112) do create_table "cards", :force => true do |t| t.string "card_number" @@ -52,6 +52,9 @@ ActiveRecord::Schema.define(:version => 20140411024809) do t.datetime "updated_at", :null => false end + add_index "door_logs", ["created_at"], :name => "index_door_logs_on_created_at" + add_index "door_logs", ["key"], :name => "index_door_logs_on_key" + create_table "ipns", :force => true do |t| t.integer "payment_id" t.text "data"