忍者ブログ
ブログツール、2007/11/06作成
[32] [31] [30] [29] [28] [27] [26] [25] [24] [23] [22
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ActiveRecordを使って大量のデータをSAVEすることに。

CSVからデータを読み込んで一行ずつ分析してデータを投入したんだけど、
これが非常に遅い。

CSVの読み出しにはFasterCSVを利用しているので、
こっちの方は遅くない。

約600件のレコードを作るCSVを流し込んでみて、
データを作成しないで行をチェックするだけのメソッドでは、
レンダリングも含めて0.2秒。
データを投入する方では、なんと143秒もかかってる。
(Developmentモード)

ログを見てみると、一つのレコードに対してinsertとupdateが1回ずつ走ってる。
なんで?

やっていることは、
CSVの解析ループで1セル毎に一つオブジェクトをnewして配列に追加、
(このときSAVEはしない。CREATEでもない)
ループ終わり配列をループで回して、
関連オブジェクトのIDを入力してからSAVEをしているだけ。
SAVEは1回しかしてないのに。

最終的には1万レコードの追加が普通になりそうなので、
ちょっと気が遠くなってきた。

件数が多いのでちょっとしたチューニングでも結構大きな差になりそうなのに。
なんかいいちえないですかねえ。
PR
この記事にコメントする
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (チェックを入れると管理人だけに表示できます)
この記事へのトラックバック
この記事にトラックバックする:
ついめ~じ
ブログ内検索
フリーエリア
サニーカメラ
Powered by Ninja Blog    template by Temp* factory    icon by MiniaureType

忍者ブログ [PR]