Tag: 批处理

Mongoid批量更新/ Upsert替代?

我知道Mongoid v3 +支持通过Model.collection.insert()批量插入。 但是,我不认为它支持批处理更新,其中每个记录的属性不同(所以我不认为update_all也可以工作)。 有没有办法进行批量更新/ upsert而不是单记录查找和更新? 这是一个简化的例子,我有2个模型: class Product … has_and_belongs_to_many :lists end class List … has_and_belongs_to_many :products end 创建新Product ,我将其与一个或多个Lists相关联。 但是,我还需要每天更新Product属性而不会丢失List参考信息(我确实没有运行Product上的validation)。 不使用批处理的一种方法是在Product上调用find_or_initialize_by并更新属性。 但对10K-1M +记录这样做是非常耗时的。 另一种使用批量插入的方法是执行Product.delete_all ,然后执行Product.collection.insert(…) ,但这会创建新的product_ids并且不再维护与List的关系。 在这个例子中有没有办法进行批量更新或upsert?

如何使用ruby mysql2执行事务

我已经开始使用mysql2 gem了。 我试图找出一些基本的东西 – 其中之一是如何显式执行事务(对于批处理操作,如多个INSERT / UPDATE查询)。 在旧的ruby-mysql ,这是我的方法: client = Mysql.real_connect(…) inserts = [ “INSERT INTO …”, “UPDATE .. WHERE id=..”, # etc ] client.autocommit(false) inserts.each do |ins| begin client.query(ins) rescue # handle errors or abort entirely end end client.commit 我在文档中找不到多少 – 如何用mysql2完成相同的操作?