SQLite糞遅い原因わかったわ
SQLiteで大量データ一気にinsertするとき糞遅かったんだが、原因わかった。
最初に
$dbh->do('BEGIN');
して、
$dbh->do('COMMIT');
でまとめて実行しなきゃいけないんだな。
そりゃ、何度もファイルアクセスしてたら遅くなるわな。
アクセス解析、糞遅いからエラーだけinsertにしてたが、
最大10000件でCOMMITするように改造して、
全行insertにして今5万行ほどでやってみたが、数秒って感じだ。
昨日は3万件で10分かかったよ。
これで全行生ログ保存いけるわ。
3万行でDB容量は10MB強ってところ。
圧縮はできないんでちょい大きいが、
100日くらい保存してもなんとか・・・って感じかな。
全件抽出可能になってだいぶいい感じになったな。
あと、今日作った
CSV>SQLite
の奴も糞重かったが、
同じ原因だね。
ほかに、
以前作ったダウンロード屋のスクリプト。
whblogのインポート機能。
も改良すべきだな。