ホームページ >バックエンド開発 >PHPチュートリアル >mysqlで高速ニックネーム検索ファジークエリを実行する方法
mysql はニックネーム検索でファジークエリを実行します。ユーザーが多すぎると、いいねクエリが非常に遅くなります。
mysql はニックネーム検索でファジークエリを実行します。ユーザーが多すぎると、いいねクエリが非常に遅くなります。
データベース内のこのテーブルのニックネームフィールドにインデックスを作成します
キー`ナイキネーム`(`ナイキネーム`)
SQL文を含む全文インデックス
ALTER TABLE `user` ADD FULLTEXT `fidx_user_nikename` (`nickname`)
次に、次のメソッドを使用してクエリします
リーリー
それが %name% のような場合、前に % がない場合は、インデックスを作成するか、LOCATE 関数を試すことができますが、おそらく効果はありません。
インストラクターはどこですか?
あいまい検索の場合は、単語の分割を使用します。 sphinx coreseek または xunsearch(Xunsou)
mysql バージョンが 5.7 以降の場合、中国語の単語の分割をサポートする ngram フルテキスト インデックスが付属しています。私はプロジェクトでそれを使用しました。オンラインでの使用方法に関するチュートリアルがすでにあります。
検索エンジンを使用して、頻繁に検索されるフィールドのインデックスを作成し、キャッシュと併用します