> 데이터 베이스 > MySQL 튜토리얼 > 인덱싱이 MySQL의 다중 열 LIKE 쿼리 성능을 향상시킬 수 있습니까?

인덱싱이 MySQL의 다중 열 LIKE 쿼리 성능을 향상시킬 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-13 02:32:10
원래의
969명이 탐색했습니다.

Can Indexing Improve MySQL's Multi-Column LIKE Query Performance?

MySQL에서 다중 열 LIKE 쿼리 최적화

여러 열에서 LIKE 절을 사용하는 느린 SELECT 쿼리는 성능 병목 현상을 일으킬 수 있습니다. 이 기사에서는 인덱싱이 쿼리 속도를 향상시키고 디스크 사용량 및 INSERT/DELETE 성능에 대한 문제를 해결할 수 있는지 살펴보겠습니다.

인덱스가 LIKE 성능을 향상시킬 수 있습니까?

안타깝게도 인덱스는 왼쪽부터 고정된 수의 문자를 인덱싱하여 작동하기 때문에 MySQL의 LIKE 쿼리에는 효과적이지 않습니다. LIKE '%text%'를 사용하면 대상 문자열 앞에 임의의 양의 텍스트가 있을 수 있으므로 인덱스 사용이 방지됩니다.

대체 접근 방식

LIKE를 사용하는 대신, FTS(전체 텍스트 검색)를 고려해보세요. FTS는 MyISAM 테이블에 대해 지원되며 부분 문자열 일치를 효율적으로 검색할 수 있습니다. MyISAM 테이블이 아닌 경우 별도의 인덱스 테이블을 사용하여 단어를 ID에 매핑하는 자체 인덱싱 시스템을 구현하면 FTS 기능을 복제할 수 있습니다.

디스크 사용량 및 INSERT/DELETE 성능

FTS 인덱싱은 디스크 사용량을 증가시킬 수 있습니다. 그러나 INSERT/DELETE 작업에 미치는 영향은 최소화됩니다. 삽입은 트랜잭션의 일부로 수행되는 인덱스에 새 단어만 추가하는 반면 나중에 제거하기 위해 표시 단어를 삭제하기 때문입니다.

업데이트

MySQL 5.6 다양한 테이블 유형에서 LIKE 성능을 향상시키기 위한 강력한 옵션을 제공하는 InnoDB 테이블에 대한 FTS 지원을 도입했습니다.

위 내용은 인덱싱이 MySQL의 다중 열 LIKE 쿼리 성능을 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿