我有一個Notification
模型。任何時候,某些動作如Comment
,Like
,Mention
,Follow
都會發生此表中獲取的單個記錄添加到它。這張表現在長達數百萬條記錄。我擁有的唯一索引是user_id - 這一直很重要,因爲我向current_user
顯示通知。有很多has_one關聯的模型在刪除記錄時非常慢
在這些相關模型,我包括以下行
has_one :notification, dependent: :destroy
的問題是,所有這些行動都是可逆的,所以每當有人,比如說,unlikes,我需要摧毀的相關通知。
因爲這樣的通知#銷燬行動現在非常慢,往往以> 10秒!我敢肯定,這是因爲每次破壞發生,它必須看起來像like_id
,comment_id
,或mention_id
外鍵
我可以在所有這些記錄添加索引,但我擔心給有多大此表是多久它得到插入和刪除。我應該擔心嗎?有沒有更好的方法來構造這個?
心理提示:':destroy'運行回調,':delete'不運行。 – Substantial 2014-10-19 07:28:25