PERF: Add index for TopicTimer#topic_id (#17680)

When viewing a topic, we execute two queries to fetch the topic's
public topic timer and slow mode timer. The former query happens to be
able to use a unique index but the latter has to do a seq scan which is
slow. The query itself is not expensive but since viewing a topic is a
hot path, the little cuts add up overtime and the query itself
contributes significantly to the load of the database.
This commit is contained in:
Alan Guo Xiang Tan
2022-07-27 16:21:11 +08:00
committed by GitHub
parent 3682513475
commit dcf84fce7b
3 changed files with 10 additions and 2 deletions

View File

@@ -0,0 +1,7 @@
# frozen_string_literal: true
class AddTopicTimersIndex < ActiveRecord::Migration[7.0]
def change
add_index :topic_timers, [:topic_id], where: "deleted_at IS NULL"
end
end