1

私はかなり大量のデータを扱っており、レコード作成をスピードアップするためのアドバイスを期待していました. 私のテストでは、約 9 列の約 30 万行を作成しましたが、予想よりもはるかに時間がかかりました。

私は基本的に、ユーザーごとにオブジェクトのリストを作成し、そこからデータを使用してより長い別のリストを生成しています。

私のコントローラーの基本的な構造は次のとおりです。

def create
  @list = Thing.all.to_array
  @list.each do |item|
    @new_thing   = NewThing.new
    @new_thing.a = item.a
    @new_thing.b = item.b 
    @new_thing.save
  end
end        

これをスピードアップするにはどうすればよいですか?

4

2 に答える 2

3

時間を短縮したい場合は、直接クエリを使用することをお勧めします。

def create
  NewThing.execute("INSERT INTO new_things (a,b) SELECT a, b FROM things")
end

上記の sql ステートメントは mysql で動作します。

于 2013-10-22T14:52:05.660 に答える