mysql 如何進行快速的暱稱搜尋模糊查詢

WBOY
發布: 2016-09-21 14:13:05
原創
1091 人瀏覽過

mysql 進行暱稱搜尋模糊查詢,如果使用者多了 like 查詢會很慢,請問如何解決?

回覆內容:

mysql 進行暱稱搜尋模糊查詢,如果使用者多了 like 查詢會很慢,請問如何解決?

  1. 在資料庫的此表中的暱稱這個欄位建立索引

    key `nikename`(`nikename`)

  2. 全文索引配合sql語句

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

然後用以下方式查詢

<code>SELECT * FROM \`user\` WHERE MATCH (nickname)AGAINST ('xxx')</code>
登入後複製

如果是like %name%,那在我的認知範圍內是沒轍了,如果前邊沒有%可以建索引,或者試試LOCATE函數,不過估計沒啥效果。

instr呢?

模糊搜尋的話,上分詞吧。 sphinx coreseek 或xunsearch(迅搜)

如果你的mysql版本大於5.7, 自帶ngram全文索引支援中文分詞,我在專案中已用,用法網上已經有教程了

使用搜尋引擎,把常用搜尋的欄位索引起來,然後在結合快取一起使用

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!