我正在用Ruby和ActiveRecord编写测试程序,它读取的文档长度为6000字.然后我就算了一下
recordWord = Word.find_by_s(word); if (recordWord.nil?) recordWord = Word.new recordWord.s = word end if recordWord.count.nil? recordWord.count = 1 else recordWord.count += 1 end recordWord.save
所以这部分循环了6000次......至少使用sqlite3运行需要几分钟.这是正常的吗?我原以为它可以在几秒钟内运行...... MySQL可以加速它吗?
通过6000次调用来写入数据库,您将看到速度问题.我会将各种标签保存在内存中并在结束时保存到数据库中,而不是一直保存6000次.
看看AR:Extensions也可以处理批量插入.
http://rubypond.com/articles/2008/06/18/bulk-insertion-of-data-with-activerecord/