>데이터 베이스 >MySQL 튜토리얼 >복합 인덱스를 사용하여 LIKE 절로 MySQL 쿼리를 최적화하는 방법은 무엇입니까?

복합 인덱스를 사용하여 LIKE 절로 MySQL 쿼리를 최적화하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-09 00:15:16437검색

How to Optimize MySQL Queries with LIKE Clauses Using Composite Indexes?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.