집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 다중 열 LIKE 쿼리를 어떻게 최적화할 수 있습니까?
SELECT x, y, z FROM table WHERE x와 같은 빈번한 쿼리 사용 LIKE '%text%' OR y LIKE '%text%' OR z LIKE '%text%', 이러한 작업을 위해서는 MySQL을 최적화하는 것이 필수적입니다. 인덱스는 일반적으로 인덱스 열에 대한 쿼리 효율성을 향상시키지만 문제는 LIKE 절의 와일드카드 사용(%text%)에 있습니다.
텍스트 열의 경우 인덱스는 왼쪽부터 시작하는 문자를 인덱스하여 작동합니다. 그러나 선행 및 후행 와일드카드(예: %text%)가 포함된 LIKE 쿼리는 텍스트의 시작 위치를 알 수 없으므로 인덱스 활용을 방지합니다.
대체 인덱스에 의존하는 것보다 다음 접근 방식을 고려하세요.
영향을 받는 테이블이 MyISAM 스토리지 엔진을 사용하는 경우 MySQL은 FTS를 제공합니다. 이 기능은 고정된 수의 문자 대신 전체 단어를 색인화하여 효율적인 텍스트 검색을 촉진합니다.
MyISAM 테이블이 아닌 경우 별도의 테이블을 생성하십시오. 기본 테이블에 단어와 해당 ID를 저장하는 인덱스 테이블입니다. 이는 본질적으로 FTS 기능을 모방하여 색인된 용어에 대한 빠른 조회를 가능하게 합니다.
MySQL 버전 5.6 이상에서는 FTS 지원을 InnoDB 테이블로 확장하여 효율적인 검색을 제공합니다. 두 스토리지 엔진 모두에 대한 대안입니다.
위 내용은 MySQL에서 다중 열 LIKE 쿼리를 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!