日記(690)

<前 次>

無題

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

無題

アンパンマンDB3のカテゴリ表示うまくいきました。
サブクエリの中で使っていたパラメータを外に引っ張り出してきて外側で評価することでスコープの問題を回避。
ただ、単純な列挙なのでこれで済みましたが、将来的にはもっと複雑なことをしたいのでもっと研究が必要そうです。

モンハン3G、チャナガブル討伐しました。
これで★★★★にいけます。
★★★★といえばギギネブラが出てきたはず…。

無題

アンパンマンDB3のカテゴリ表示うまくいかないです。
どうにも入れ子にしたサブクエリの中まで外側の値が入っていかないようで。
ローカル環境では動いていたのでちょっと困惑気味です。

無題

タイトルジェネレータのデータ移行プログラムを作成。
タイトルジェネレータそのもののプログラムは以前のものをSQLite用に書き換えるだけで済む。
残るはコメントと質問箱だが運営方針が定まらないとどうにもならない。

無題

アンパンマンDB3の関連カテゴリ&別名の登録機能作成。
また、ペアリストのリンク先の設定がおかしくなる問題を修正。
普通の情報はこれで全て移行可能になった。

無題

アンパンマンDB3のデータベース管理クラスを検索機能のクラスと編集機能のクラスに分割しました。
現状のアンパンマンDB2のように何でもかんでも1箇所に集約しすぎてソースがごちゃごちゃしてきたのと、ユーザー側のページでも呼び出していないだけで編集機能そのものは動く状態で存在していたのが理由としてあります。
編集機能は結構大きいので、ユーザー側のページでは絶対使わない編集機能を読み込むのも無駄な話だし、もし万が一間違えて編集機能を呼び出すコードなんて書いてしまったら大変です。実際紛らわしい内容のメソッドもありますし。

あと、SearchPhraseParserを微妙に更新しました。
本体の動作が変わらないほど本当に微妙な変更ですが。
ただ、オプション項目を追加する程度のことはできたかなーって気がします。

無題

アンパンマンDB3のカテゴリ取得のSQLを作っていました。
先祖カテゴリまで遡って一気に取得するSQLを作ったのですが、思いのほか長くなってしまいました。

<前 次>