MySQL: 쉼표로 구분된 목록 내 다중 문자열 검색 최적화
MySQL의 find_in_set
함수는 쉼표로 구분된 목록 내에서 단일 문자열을 검색하는 간단한 접근 방식을 제공합니다. 그러나 find_in_set
을 사용하여 여러 문자열을 동시에 검색하면 상당한 제한이 따릅니다. 이 기사에서는 이러한 제한 사항을 살펴보고 정규 표현식을 사용하는 우수한 대안을 소개합니다.
find_in_set
단점
find_in_set
의 핵심 제한은 단일 쿼리에서 여러 검색 문자열을 처리할 수 없다는 것입니다. 이러한 제한은 대규모 데이터세트나 수많은 검색어를 처리할 때 문제가 됩니다.
보다 효율적인 접근 방식: 정규식 활용
OR 연산자를 사용하여 여러 find_in_set
호출을 연결하는 제안은 비효율적이며 빠르게 다루기 어려워집니다. 훨씬 더 확장 가능하고 효율적인 솔루션에는 MySQL의 정규식 기능이 포함됩니다. 다음 쿼리는 이를 보여줍니다.
<code class="language-sql">WHERE CONCAT(",", `setcolumn`, ",") REGEXP ",(val1|val2|val3),"</code>
여기서 setcolumn
은 쉼표로 구분된 목록이 포함된 열을 의미하며, val1
, val2
, val3
은 검색하려는 문자열입니다. REGEXP
연산자는 연결된 문자열(선행 및 후행 쉼표 포함)이 정규식 패턴과 일치하는지 확인합니다. 이 패턴은 쉼표로 구분된 지정된 값을 검색합니다.
정규식 방법의 장점
정규식 접근 방식은 다음과 같은 몇 가지 주요 이점을 제공합니다.
find_in_set
작업보다 훨씬 빠릅니다.이 정규식 기반 솔루션은 MySQL의 쉼표로 구분된 목록 내에서 다중 문자열 검색을 위한 보다 강력하고 효율적인 방법을 제공합니다.
위 내용은 MySQL의 쉼표로 구분된 목록에서 여러 문자열을 효율적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!