从文件中的数据构建S​​QLite数据库的最有效方法是什么?

时间:2011-01-23 14:04:18

标签: ruby database sqlite implementation

我有一个包含文本格式数据的文本文件,我希望将这些数据以自动方式放在数据库中,以便在Ruby on Rails应用程序中进一步使用,我想用Ruby来解决这个问题。

我想知道解决这个问题的最有效方法以及您可能想到的解决方案。

我找到的解决方案包括使用活动记录从文件中获取数据,这可能不是最有效的数据库,所以让我们看看你的想法是什么?

1 个答案:

答案 0 :(得分:3)

我发现Sequel比ActiveRecord更快,但两者都应该没问题。

  1. 将文本文件读入内存。如果它太大而无法放入内存,您将需要使用File.foreach一次操作一行。

  2. 将文本文件解析为逻辑字段数组。我建议使用正则表达式,除非你的文本文件是CSV。

  3. 在您的数据库上执行multi_insert,该数据库使用单个SQL命令一次插入 n 行。

    • 如果您无法执行批量插入(我知道ActiveRecord默认情况下不支持它而没有一些扩展名),那么请确保至少在所有插入中使用数据库事务。如果不这样做,SQLite将会针对每个插件访问文件系统,这会大大降低您的速度。
  4. 如果没有关于“文本文件”的更多信息,这就像我一样有用。