如何優化 mysql 千萬數據量的模糊搜索
對于包含千萬數據量的 mysql 數據庫中模糊搜索的性能優化,一個簡單的想法是創建類似下表的索引:
索引表 | 當前詞 | 下一詞 | 原記錄主鍵 id | |---|---|---| | mysql | 一 | 1 | | 一 | 千 | 1 | | 千 | 萬 | 1 | | 萬 | 的 | 1 | | ... | ... | ... | | 模 | 糊 | 1 | | 糊 | 搜 | 1 | | 搜 | 索 | 1 | | 索 | null | 1 |
以此方式,我們可以在該索引表中高效地搜索“模糊搜索”,使用如下 sql 查詢:
SELECT 原記錄主鍵ID FROM (SELECT 原記錄主鍵ID FROM 索引表 WHERE 當前詞 = '模' AND 下一詞 = '糊') JOIN (SELECT 原記錄主鍵ID FROM 索引表 WHERE 當前詞 = '糊' AND 下一詞 = '搜') USING(原記錄主鍵ID) JOIN (SELECT 原記錄主鍵ID FROM 索引表 WHERE 當前詞 = '搜' AND 下一詞 = '索') USING(原記錄主鍵ID) JOIN (SELECT 原記錄主鍵ID FROM 索引表 WHERE 當前詞 = '索' AND 下一詞 IS NULL) USING(原記錄主鍵ID)
這種方法可以有效地縮小搜索范圍,從而提高模糊搜索的性能,在秒級內完成搜索。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END