Min*_*ure 7 sql postgresql performance activerecord ruby-on-rails
有没有更快的方法来摧毁所有的铁轨?
我问这个是因为rails会对每条记录执行单独的删除sql查询.
例如,在搜索4条记录时调用destroy all会运行4条删除sql命令.
Blerg.where("created_at > yesterday").destroy_all (4 results)
Run Code Online (Sandbox Code Playgroud)
然后打电话......
DELETE FROM "blergs" WHERE "blergs"."id" = $1 [["id", 197782]]
Run Code Online (Sandbox Code Playgroud)
4次.
有没有办法把它变成一个sql命令?
Car*_*rot 11
你总是可以打电话
Blerg.where("created_at > yesterday").delete_all
Run Code Online (Sandbox Code Playgroud)
这只提供一个查询:
DELETE FROM "blergs" WHERE (created_at > '2012-11-26 16:27:56.678872')
Run Code Online (Sandbox Code Playgroud)
请注意,这不会调用要删除的对象的任何回调.