首頁 >後端開發 >php教程 >mysql 如何進行快速的暱稱搜尋模糊查詢

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

WBOY
WBOY原創
2016-09-21 14:13:051185瀏覽

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全文索引支援中文分詞,我在專案中已用,用法網上已經有教程了

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn