MySQL LIKE 與 LOCATE:哪個更有效率?
在 MySQL 中執行模式比對查詢時,您有兩個主要選項: LIKE運算子和 LOCATE 函數。哪一種執行速度較快?
為了回答這個問題,讓我們使用一個簡單的基準測試來比較這兩種方法的效能。以下查詢使用LIKE 運算子查找列中包含特定文字的行:
SELECT * FROM table WHERE column LIKE '%text%';
以下查詢使用LOCATE 函數執行相同的操作:
SELECT * FROM table WHERE LOCATE('text',column)>0;
正在執行針對大型資料集的這些查詢顯示LIKE 運算子稍微快一些,主要是因為它避免了LOCATE 所需的額外比較(> 0)。以下是基準測試的結果:
mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar')); +---------------------------------------------+ | BENCHMARK(100000000,LOCATE('foo','foobar')) | +---------------------------------------------+ | 0 | +---------------------------------------------+ 1 row in set (3.24 sec) mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar') > 0); +-------------------------------------------------+ | BENCHMARK(100000000,LOCATE('foo','foobar') > 0) | +-------------------------------------------------+ | 0 | +-------------------------------------------------+ 1 row in set (4.63 sec) mysql> SELECT BENCHMARK(100000000,'foobar' LIKE '%foo%'); +--------------------------------------------+ | BENCHMARK(100000000,'foobar' LIKE '%foo%') | +--------------------------------------------+ | 0 | +--------------------------------------------+ 1 row in set (4.28 sec) mysql> SELECT @@version; +----------------------+ | @@version | +----------------------+ | 5.1.36-community-log | +----------------------+ 1 row in set (0.01 sec)
以上是## MySQL LIKE 與 LOCATE:模式匹配哪個比較快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!