検索ボックスから入力すると WHERE column_name LIKE "%foo%" というような部分一致検索する機能があり、この処理が非常に遅い。 % で始まる LIKE はインデックスを使えないから。 データベースが MySQL 5.1(InnoDB) の場合に、これをはやくするアプローチを考えてみる MySQL の設定を見直す 設定がデフォルトのままだったら、チューニングする。 ベースとなる設定 http://blog.nomadscafe.jp/2012/10/mysql-mycnf-github.html SQL を見直す explainで実行計画を確認し LIKE 以外の箇所で改善点がないか見直す。 今回のケースでは、サブクエリーがフルスキャンしていたので、インデックスを追加して3000倍達成。 前方一致検索にする インデックスが使えるように、部分一致検索(LIKE "%f
![MySQLのLIKEが遅い](https://cdn-ak-scissors.b.st-hatena.com/image/square/8d71ff5111e05619a10d29bb40d7aebaa75c8fbc/height=288;version=1;width=512/https%3A%2F%2Fs0.wp.com%2Fi%2Fblank.jpg)