Add counter caches for a large performance increase on API requests

This commit is contained in:
Eugen Rochko 2017-03-30 15:06:59 +02:00
parent 333e44c3fc
commit de22c202f5
13 changed files with 41 additions and 22 deletions

View file

@ -4,7 +4,7 @@ class Favourite < ApplicationRecord
include Paginable
belongs_to :account, inverse_of: :favourites
belongs_to :status, inverse_of: :favourites
belongs_to :status, inverse_of: :favourites, counter_cache: true
has_one :notification, as: :activity, dependent: :destroy

View file

@ -3,8 +3,8 @@
class Follow < ApplicationRecord
include Paginable
belongs_to :account
belongs_to :target_account, class_name: 'Account'
belongs_to :account, counter_cache: :following_count
belongs_to :target_account, class_name: 'Account', counter_cache: :followers_count
has_one :notification, as: :activity, dependent: :destroy

View file

@ -10,11 +10,11 @@ class Status < ApplicationRecord
belongs_to :application, class_name: 'Doorkeeper::Application'
belongs_to :account, inverse_of: :statuses
belongs_to :account, inverse_of: :statuses, counter_cache: true
belongs_to :in_reply_to_account, foreign_key: 'in_reply_to_account_id', class_name: 'Account'
belongs_to :thread, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :replies
belongs_to :reblog, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblogs
belongs_to :reblog, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblogs, counter_cache: :reblogs_count
has_many :favourites, inverse_of: :status, dependent: :destroy
has_many :reblogs, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblog, dependent: :destroy