ActiveScaffold を覚えたので、調子に乗って自宅鯖にある某ラジオ局の ON AIR 履歴一覧を Rails で書き直してみた。 2001 年から蓄積した 84 万曲の履歴から、最新のものを一覧表示する。5 分更新。 ここで ActiveScaffold の Search アクションを使って検索ボックスを実装したのだが、前方一致検索にしたのに数秒単位で時間がかかる。 データベースには index を張ってあるのになぜ? と思い、Rails のログからクエリを取り出してみると、 SELECT count(*) AS count_all FROM `songs` WHERE ((LOWER(songs.`artist`) LIKE 'kotoko%' OR LOWER(songs.`title`) LIKE 'kotoko%')) 大小文字に関係なくマッチさせるために、条件の左辺に