ホームページ >バックエンド開発 >PHPチュートリアル >mysqlで高速ニックネーム検索ファジークエリを実行する方法

mysqlで高速ニックネーム検索ファジークエリを実行する方法

WBOY
WBOYオリジナル
2016-09-21 14:13:051153ブラウズ

mysql はニックネーム検索でファジークエリを実行します。ユーザーが多すぎると、いいねクエリが非常に遅くなります。

返信内容:

mysql はニックネーム検索でファジークエリを実行します。ユーザーが多すぎると、いいねクエリが非常に遅くなります。

  1. データベース内のこのテーブルのニックネームフィールドにインデックスを作成します

    キー`ナイキネーム`(`ナイキネーム`)

  2. SQL文を含む全文インデックス

    ALTER TABLE `user` ADD FULLTEXT `fidx_user_nikename` (`nickname`)

次に、次のメソッドを使用してクエリします

リーリー

それが %name% のような場合、前に % がない場合は、インデックスを作成するか、LOCATE 関数を試すことができますが、おそらく効果はありません。

インストラクターはどこですか?

あいまい検索の場合は、単語の分割を使用します。 sphinx coreseek または xunsearch(Xunsou)

mysql バージョンが 5.7 以降の場合、中国語の単語の分割をサポートする ngram フルテキスト インデックスが付属しています。私はプロジェクトでそれを使用しました。オンラインでの使用方法に関するチュートリアルがすでにあります。

検索エンジンを使用して、頻繁に検索されるフィールドのインデックスを作成し、キャッシュと併用します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。