###前提・実現したいこと
MySQL5.7 innoDBにて以下のクエリで日本語の部分一致検索を行っています。
SELECT カラム FROM テーブル名 WHERE textカラム LIKE '%検索ワード%';
SELECT COUNT(*) AS cnt FROM テーブル名 WHERE textカラム LIKE '%検索ワード%';
この場合、ワイルドカードから始まるのでインデックスが利用されず、約500万レコードの検索を行ったところ、検索と件数の値の取得に5秒以上の時間がかかってしまっていまっている点を解決したいと思っています。
###試したこと
http://quotto.hatenablog.com/entry/2016/03/21/221821
上記のURLを参考にngram + fulltextを利用したところ、
SELECT * FROM テーブル名 WHERE match(FullText Indexのtextカラム) against('検索ワード')
で試しましたが、100万件以上ヒットするキーワードなどでは止まってしまうことや、LIMIT句が効かないことがあり、その点の問題の解決方法も探しております。
###補足情報(言語/FW/ツール等のバージョンなど)
MySQL5.7.12
クエリはHeidiSQL9.2.0でリクエストしています。
何卒よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。