Commit 927d459d92e85daa5cd8c72f790c94fa64f1800a
1 parent
6c7b80b0
Exists in
master
and in
1 other branch
add index to votes on created_at and question_id
this is used for a query in the admin area that lists gets count of votes by question for today
Showing
2 changed files
with
13 additions
and
1 deletions
Show diff stats
db/migrate/20110628160608_add_index_for_created_at_question_id_to_votes.rb
0 → 100644
... | ... | @@ -0,0 +1,11 @@ |
1 | +class AddIndexForCreatedAtQuestionIdToVotes < ActiveRecord::Migration | |
2 | + # this is for a query in the admin area | |
3 | + # 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; | |
4 | + def self.up | |
5 | + add_index :votes, [:created_at, :question_id] | |
6 | + end | |
7 | + | |
8 | + def self.down | |
9 | + remove_index :votes, [:created_at, :question_id] | |
10 | + end | |
11 | +end | ... | ... |
db/schema.rb
... | ... | @@ -9,7 +9,7 @@ |
9 | 9 | # |
10 | 10 | # It's strongly recommended to check this file into your version control system. |
11 | 11 | |
12 | -ActiveRecord::Schema.define(:version => 20110620185325) do | |
12 | +ActiveRecord::Schema.define(:version => 20110628160608) do | |
13 | 13 | |
14 | 14 | create_table "appearances", :force => true do |t| |
15 | 15 | t.integer "voter_id" |
... | ... | @@ -250,6 +250,7 @@ ActiveRecord::Schema.define(:version => 20110620185325) do |
250 | 250 | end |
251 | 251 | |
252 | 252 | add_index "votes", ["choice_id"], :name => "choice_id_idx" |
253 | + add_index "votes", ["created_at", "question_id"], :name => "index_votes_on_created_at_and_question_id" | |
253 | 254 | add_index "votes", ["loser_choice_id"], :name => "loser_choice_id_idx" |
254 | 255 | add_index "votes", ["question_id"], :name => "question_id_idx" |
255 | 256 | add_index "votes", ["voter_id"], :name => "index_votes_on_voter_id" | ... | ... |