## MySQL LIKE 與 LOCATE:模式匹配哪個比較快?

DDD
發布: 2024-10-25 01:52:30
原創
783 人瀏覽過

##  MySQL LIKE vs LOCATE: Which is Faster for Pattern Matching?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!