最近、実稼働システムの1つでMySQLで同様の問題が発生しました。
上記のコメント投稿者が指摘したように、問題はテキストフィールドでのワイルドカード検索であり、特に検索の先頭の%です。
先行する%を削除し、検索クエリの所要時間を数桁短縮しました(60秒以上のサーバーの処理から「まったく時間がない」まで)。
別の方法として、フルテキストインデックスまたはLuceneのようなシステムを使用して検索することもできます。
最近、実稼働システムの1つでMySQLで同様の問題が発生しました。
上記のコメント投稿者が指摘したように、問題はテキストフィールドでのワイルドカード検索であり、特に検索の先頭の%です。
先行する%を削除し、検索クエリの所要時間を数桁短縮しました(60秒以上のサーバーの処理から「まったく時間がない」まで)。
別の方法として、フルテキストインデックスまたはLuceneのようなシステムを使用して検索することもできます。