From 927d459d92e85daa5cd8c72f790c94fa64f1800a Mon Sep 17 00:00:00 2001 From: Luke Baker Date: Tue, 28 Jun 2011 12:09:18 -0400 Subject: [PATCH] add index to votes on created_at and question_id --- db/migrate/20110628160608_add_index_for_created_at_question_id_to_votes.rb | 11 +++++++++++ db/schema.rb | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20110628160608_add_index_for_created_at_question_id_to_votes.rb diff --git a/db/migrate/20110628160608_add_index_for_created_at_question_id_to_votes.rb b/db/migrate/20110628160608_add_index_for_created_at_question_id_to_votes.rb new file mode 100644 index 0000000..13f665e --- /dev/null +++ b/db/migrate/20110628160608_add_index_for_created_at_question_id_to_votes.rb @@ -0,0 +1,11 @@ +class AddIndexForCreatedAtQuestionIdToVotes < ActiveRecord::Migration + # this is for a query in the admin area + # EXPLAIN SELECT count(*) AS count_all, votes.question_id AS votes_question_id FROM `votes` INNER JOIN `questions` ON `questions`.id = `votes`.question_id WHERE (votes.created_at > '2011-06-01') AND (votes.valid_record = 1) GROUP BY votes.question_id; + def self.up + add_index :votes, [:created_at, :question_id] + end + + def self.down + remove_index :votes, [:created_at, :question_id] + end +end diff --git a/db/schema.rb b/db/schema.rb index 79ffbe4..683d931 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -9,7 +9,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20110620185325) do +ActiveRecord::Schema.define(:version => 20110628160608) do create_table "appearances", :force => true do |t| t.integer "voter_id" @@ -250,6 +250,7 @@ ActiveRecord::Schema.define(:version => 20110620185325) do end add_index "votes", ["choice_id"], :name => "choice_id_idx" + add_index "votes", ["created_at", "question_id"], :name => "index_votes_on_created_at_and_question_id" add_index "votes", ["loser_choice_id"], :name => "loser_choice_id_idx" add_index "votes", ["question_id"], :name => "question_id_idx" add_index "votes", ["voter_id"], :name => "index_votes_on_voter_id" -- libgit2 0.21.2