집 >데이터 베이스 >MySQL 튜토리얼 >복합 인덱스를 사용하여 LIKE 절로 MySQL 쿼리를 최적화하는 방법은 무엇입니까?
LIKE 절이 포함된 쿼리에 대한 최적의 인덱싱 전략 식별
LIKE 절이 포함된 데이터베이스 쿼리를 최적화할 때 인덱스의 효율성이 다소 불확실해집니다. 그러나 제한 사항과 최적의 인덱싱 전략을 이해하면 쿼리 성능이 크게 향상될 수 있습니다.
다음 쿼리를 고려하세요.
SELECT name, usage_guidance, total_used_num FROM tags WHERE ( name LIKE CONCAT('%', ?, '%') OR usage_guidance LIKE CONCAT(?, '%') ) AND name NOT IN ($in) ORDER BY name LIKE CONCAT('%', ?, '%') DESC, name ASC LIMIT 6
이 쿼리에 가장 적합한 인덱스를 결정하려면 LIKE 절의 특성을 고려해야 합니다. . MySQL은 = 및 >와 같은 연산자를 사용하여 열 비교를 위해 B-트리 인덱스를 활용합니다. LIKE 인수가 와일드카드가 없는 상수 문자열인 경우 B-트리 인덱스는 LIKE 비교를 향상시킬 수 있지만 와일드카드가 있으면 효율성이 제한됩니다.
위 쿼리에서 LIKE 표현식은 모두 와일드카드로 시작하지 않습니다. 이는 Usage_guidance 및 name 열에 대한 복합 인덱스가 가장 유익하다는 것을 의미합니다. 이러한 방식으로 인덱스를 정렬하면 쿼리가 두 LIKE 비교에 인덱스를 활용할 수 있습니다.
다음은 복합 인덱스를 생성하는 SQL 명령입니다.
CREATE INDEX idx_tags ON tags(usage_guidance, name);
다음과 같은 경우 여러 요소가 쿼리 성능에 영향을 미치는 경우 테이블 구조, 샘플 데이터 및 예상 출력을 분석하면 최적화를 위한 추가 기회를 찾을 수 있는 경우가 많습니다.
위 내용은 복합 인덱스를 사용하여 LIKE 절로 MySQL 쿼리를 최적화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!