집 >데이터 베이스 >MySQL 튜토리얼 >## MySQL LIKE vs LOCATE: 패턴 일치에 있어서 어느 것이 더 빠릅니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!