MySQL 列字串匹配:INSTR 與LIKE
在類型為'varchar'、'text 的MySQL 欄位中搜尋子字串時' 或'blob',出現了兩種常見的搜尋方法:INSTR 和LIKE。然而,哪種方法更有效?
問題集中在使用 INSTR 函數來定位指定字串的位置的 INSTR 或使用通配符模式匹配的 LIKE 是否更優化選擇。
效能比較
基準測試顯示,對於全表掃描時,INSTR 和 LIKE都表現出相似的效能:
INSTR( columnname, 'mystring' ) > 0: 5.54 sec columnname LIKE '%mystring%': 5.54 sec
但是,在索引列上執行前綴搜尋時出現一個關鍵區別:
Name LIKE 'search%': 3.88 sec
在這種情況下,LIKE 僅使用後綴通配符明顯優於INSTR。
替代方案:FULLTEXT搜尋
雖然INSTR 和LIKE 對於字串匹配都非常有用,但值得注意的是,FULLTEXT 搜尋在子字串搜尋方面的效率更高。它們利用索引單字列表,實現閃電般的效能,尤其是在搜尋大型列時。當速度至關重要時,請考慮使用全文。
以上是MySQL 字串匹配:INSTR 與 LIKE:哪個更有效率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!