在将大约 13,000 条记录插入设备数据库时,我遇到了问题(由于时间原因)。
有没有办法优化这个?是否有可能将这些全部放入一个事务中(因为我相信它当前正在为每个插入创建一个事务(这显然对速度有恶魔般的影响))。
目前这需要大约 10 分钟,这包括将 CSV 转换为哈希(这似乎不是瓶颈)。
愚蠢的是我没有使用 RhoSync ......
谢谢
使用固定模式而不是属性包,您可以使用一个事务(请参阅下面的链接了解如何)。
http://docs.rhomobile.com/rhodes/rhom#perfomance-tips。
这个问题是其他人在谷歌群组(HAYAKAWA Takashi)上回答的
围绕插入设置事务,然后仅在最后提交。
从他们的常见问题解答。
http://docs.rhomobile.com/faq#how-can-i-seed-a-large-amount-of-data-into-my-application-with-rhom
db = ::Rho::RHO.get_src_db('Model')
db.start_transaction
begin
items.each do |item|
# create hash of attribute/value pairs
data = {
:field1 => item['value1'],
:field2 => item['value2']
}
# Creates a new Model object and saves it
new_item = Model.create(data)
end
db.commit
rescue
db.rollback
end
我发现这种技术是一个巨大的加速。