[PHP-users 35025] Re: 大量データをDBへインポートする処理

shige02 @ mac.com shige02 @ mac.com
2010年 2月 26日 (金) 10:53:12 JST


>> 単に BEGIN してないから遅いだけでは?
>> あとは、そのテキストデータとやらが何だか知りませんけど、sqlite に直接 CSV 食わせるとかでもいいんじゃないですか?
> 
> 一応、BIGINとCOMMITは一件ずつ処理に適用しております。
> 
> 以上よろしくお願いいたします。

言葉足らずでしたけど、一件一件、いちいち COMMIT するから遅いといいたかったんです。
最初に BEGIN して、全部 INSERT してから COMMIT すれは、ファイルアクセスが都度発生しないのでかなり高速になると思います。

それと、逆に質問なんですが、そんなことしたら、トランザクションの意味が全くないと思いますが、気のせいでしょうか。
今回のようにタイムアウトしたら、INSERT 出来た行と、出来なかった行が出来ると思うんですが、出来なかった行はどうやってやり直すんでしょうか?

-- 
Osamu Shigematsu



PHP-users メーリングリストの案内