"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > ## MySQL LIKE vs LOCATE: 패턴 일치에 있어서 어느 것이 더 빠릅니까?

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

2024-11-09에 게시됨
검색:167

##  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)
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3