2012年1月16日の日記

<2012/01/17 2012/01/15>

無題

アンパンマンDB3のカテゴリ表示、うまくいったと昨日いいましたが、キャラDBで表示確認してみたところ、とても実用に堪えない速度であることがわかりました。
というわけで、快適な表示を実現するべく、SQLを見直しました。
カテゴリは読みでソートしたかったのですが、これをSQLだけで行おうとすると集約関数に渡す前にソートしなければならなくて、それを実現するためにはソートするためだけに全件ソートするサブクエリを作らなければいけなくて、ということをやっていると重くなってしまいました。
最新版のSQLiteでは余計なサブクエリを作らなくて良いみたいなのですが、バージョンアップできない環境なので、SQLだけで高速化は無理そうでした。
そこで、SQLではカテゴリのソートは行わず、ソートのヒントまで作っておいて、実際のソートはPHPプログラムで行うことにしました。
これで5秒が0.05秒になりました。

<2012/01/17 2012/01/15>