是否可以使用Sequel在一次调用中进行多次更新?
例如,在我的服务器上进行大约 200 次更新可能需要几分钟,但如果我伪造一个 SQL 查询,它会在几秒钟内运行。我想知道是否可以使用 Sequel 来伪造那个 SQL 查询,或者更好的是,自己完成整个操作。
是否可以使用Sequel在一次调用中进行多次更新?
例如,在我的服务器上进行大约 200 次更新可能需要几分钟,但如果我伪造一个 SQL 查询,它会在几秒钟内运行。我想知道是否可以使用 Sequel 来伪造那个 SQL 查询,或者更好的是,自己完成整个操作。
我遇到的解决方案涉及 update_sql 方法。它不执行操作本身,而是输出原始 SQL 查询。要批量更新多个更新,只需将它们与 ; 在这两者之间,使用生成的字符串调用 run 方法,一切就绪。
批处理解决方案比多次更新要快得多。
可以使用Datset#import
http://sequel.jeremyevans.net/rdoc/classes/Sequel/Dataset.html#method-i-import
"向关联表中插入多条记录。该方法可用于高效插入大量记录如果数据库支持,则在单个查询中放入表中。插入会自动包装在事务中。”
这是如何使用它的示例:
DB = Sequel.connect(...)
DB[:movies].import([:id, :director, :title, :year], [[1, "Orson Welles", "Citizen Kane", 1941],[2, "Robert Wiene", "Cabinet of Dr. Caligari, The", 1920]])
Dataset#update
不适合你?
http://sequel.jeremyevans.net/rdoc/classes/Sequel/Dataset.html#method-i-update