2005-11-03(Thu) [長年日記]
_ [rails]FastCGI+SQLite3+Pagination on Windows
前述の業務データを突っ込んだSQLiteをscaffoldするだけのRailsアプリをFastCGIで動かしてみてもやっぱり遅いので追求してみました。Pagination内で1)全件数を取得 2)LIMIT,OFFSETを使っての検索が2回発生しますが、1)の全件数取得にやはり時間がかかった模様。主キーにindexもはってみたんですけど変わらず。実際にはmodel.countが呼び出されるので、モデル側で適当に数値を返すcountメソッドを書いてみたら、満足する速度になりました。
LIMIT,OFFSETを使った検索も、
select * from Table offset 10000 limit 30;
とかだと問題ないですが、
select * from Table offset 300000 limit 30;
くらいになってくるとちょっと微妙な感じ。
そもそもSQLiteに大量にデータ入れること自体がナンセンス、という向きもあろうとは思いますが、大量データだからこそ、薄いガワでラップできれば便利なんじゃないかなー、と思います。
つーか、大量データっつっても非圧縮で100M程度しかないわけで、DVDイメージですら4G、HDDも数十G、メインメモリも512M-1Gの時代なのにこれくらいがさくさく処理できないってのはなんなんでしょうね。なんか距離感が狂うな。もしかしたら、Unix系だと爆速なのかもしれませぬ。