这是我的导入脚本。我有大约 400 000 条记录。并且在插入记录期间我的连接关闭。如何将其拆分为更小的部分?
def extract_to_database(collection)
tmp = []
type = K
inserts = []
collection.each_with_index do |line, i|
_type = line.strip
_changed = TYPES.include? _type
if _changed && i > 0
case type
when K then @k << tmp
when F then @f << tmp
when FB then @f << tmp
when I, D
pharmaceutic = Pharmaceutic.find_by pzn: tmp[PZN]
if pharmaceutic
inserts.push "(#{pharmaceutic.id}, '#{tmp[UNIT]}', '#{tmp[DOSE]}')"
end
end
tmp = []
type = _type
end
tmp << clean(line)
end
sql = "INSERT INTO pharmaceutic_dosages (`pharmaceutic_id`, `unit`, `dose`) VALUES #{inserts.join(", ")}"
CONN.execute sql
end