将13,000条记录插入设备数据库时,我遇到了问题(由于时间原因)。
有没有办法优化这个?是否有可能将这些全部放入一个事务中(因为我认为它目前每个插入创建一个事务(显然对速度有恶魔影响)。)
目前这需要大约10分钟,这包括将CSV转换为哈希(这似乎不是瓶颈)。
愚蠢的是我没有使用RhoSync ...
由于
答案 0 :(得分:0)
使用固定架构而不是属性包,您可以使用一个事务(请参阅下面的链接了解如何)。
http://docs.rhomobile.com/rhodes/rhom#perfomance-tips
此问题是其他人在google群组(HAYAKAWA Takashi)上的回答
答案 1 :(得分:0)
围绕插入设置事务,然后只在最后提交。
从他们的常见问题解答。
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
我发现这种技术的速度非常快。