>  기사  >  데이터 베이스  >  ## MySQL LIKE vs LOCATE: 패턴 일치에 있어서 어느 것이 더 빠릅니까?

## MySQL LIKE vs LOCATE: 패턴 일치에 있어서 어느 것이 더 빠릅니까?

DDD
DDD원래의
2024-10-25 01:52:30784검색

##  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;

실행 중 대규모 데이터세트에 대한 이러한 쿼리는 주로 LOCATE에 필요한 추가 비교(> 0)를 피하기 때문에 LIKE 연산자가 약간 더 빠르다는 것을 보여줍니다. 벤치마크 결과는 다음과 같습니다.

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 vs LOCATE: 패턴 일치에 있어서 어느 것이 더 빠릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.