2011年5月31日火曜日

SqliteでのCOUNT対策

アプリで常用しているsqliteでの件数検索
60000件のデータで検索が5秒とかもうね、な感じ。
死ぬほど遅くてこのままリリースしたら致命傷になりかねないので、いったん見直すことにする。

「sqlite count 遅い」でぐぐる先生が教えてくれますのでその辺から、、、
とかくとあれなので。

MySQL:インデックスまとめメモ
http://www.res-system.com/weblog/item/550

SQLを速くするぞ←sqliteにかぎらない?
http://www.geocities.co.jp/mickindex/database/db_optimize.html

【sqlite】sql count(*) の高速化
http://blog.jojo.jp/?eid=440775

SQLite3で大量データ+複雑なVIEWをCOUNT(*)すると固まる(ほど遅い)
http://d.hatena.ne.jp/yotaropg/20070521/1179757341

SQLiteのcountが遅いときの対処法
http://blog.monoweb.info/archives/1432

インデックスとは
http://www.hi-ho.ne.jp/tsumiki/doc_1.html

このあたりかな。
簡単に言うと

SELECT COUNT(*) FROM ほげほげ;
より
SELECT COUNT(ほげ) FROM ほげほげ;
にしてCOUNTに指定したほげにはインデックス張った奴を任命しろってことみたい。

で、結果目視1秒以下ぐらいになりました。
ぶらぼう


追記
実は以下が参考になったのかも
MySQL インデックスの最適化
http://yantona.jugem.jp/?eid=311

0 件のコメント:

コメントを投稿