我想跑Alarm.destroy_all
不过,每个警报都与许多警报相关联AlarmEvent
s,并且每个AlarmEvent
与许多相关AlarmEvent::Measurement
s,两个关联都标记为:dependent=>destroy
因此,当我调用 Alarm.destroy all 时,此调用需要很长时间才能运行。有什么办法可以让它更快吗?如何?
到目前为止我已经尝试过Alarm.joins(:alarm_events).destroy_all
而且还是很慢。
更快的替代方案destroy_all
is delete_all
但这不会追查和破坏任何依赖项,也不会触发任何before_destroy
or after_destroy
hooks.
如果您真的关心速度,您可能会考虑到这一点来重写此代码。您甚至可以将其作为一系列条件:
Alarm.delete_all(:id => alarm_ids)
AlarmEvent.delete_all(:alarm_id => alarm_ids)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)