是否可以使用Sequel在一次通话中进行多次更新?
例如,在我的服务器上进行大约200次更新可能需要几分钟,但如果我伪造一个SQL查询,它将在几秒钟内运行。我想知道Sequel是否可以用来伪造SQL查询甚至更好,单独完成整个操作。
答案 0 :(得分:4)
我遇到的解决方案涉及update_sql方法。它不是自己进行操作,而是输出原始SQL查询。要批量处理多个更新,只需加入这些更新;在中间,用生成的字符串调用run方法,然后你就完成了设置。
批处理解决方案比多次更新快得多。
答案 1 :(得分:4)
您可以使用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]])
答案 2 :(得分:-2)
Dataset#update
不适合你吗?
http://sequel.jeremyevans.net/rdoc/classes/Sequel/Dataset.html#method-i-update