一般的數據庫搜索都是用的SQL的 like 語句,like 語句是不能利用索引的,每次查詢都是從第一條遍歷至最後一條,查詢效率極其低下。一般數據超過10萬或者在線人數過多,like查詢都會導致數據庫崩潰。這也就是為什麼很多程序都只提供標題搜索的原因了,因為如果搜索內容,那就更慢了,幾萬數據就跑不動了。
Mysql 全文索引是專門為了解決模糊查詢提供的,可以對整篇文章預先按照詞進行索引,搜索效率高,能夠支持百萬級的數據檢索。
從 Mysql 4.0 開始就支持全文索引功能,但是 Mysql 默認的最小索引長度是 4。如果是英文默認值是比較合理的,但是中文絕大部分詞都是2個字符,這就導致小於4個字的詞都不能被索引,全文索引功能就形同虛設了。國內的空間商大部分可能並沒有注意到這個問題,沒有修改 Mysql 的默認設置。
如果您使用的是自己的服務器,請馬上進行設置,不要浪費了這個功能。
如果您使用的是虛擬主機,請馬上聯系空間商修改配置。首先,Mysql 的這個默認值對於中文來說就是一個錯誤的設置,修改設置等於糾正了錯誤。其次,這個配置修改很簡單,也就是幾分鐘的事情,而且搜索效率提高也降低了空間商數據庫宕掉的幾率。如果你把本文發給空間商,我相信絕大部分都會願意改的。
設置方法:
請聯系服務器管理員修改my.ini ,在 [mysqld] 後面加入一行“ft_min_word_len=1”,然後重啟Mysql,再登錄網站後台(模塊管理->全站搜索)重建全文索引,否則將無法使用全站搜索功能。