我有一个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