>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 다중 열 LIKE 쿼리 속도를 어떻게 높일 수 있습니까?

MySQL에서 다중 열 LIKE 쿼리 속도를 어떻게 높일 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-11 00:37:10943검색

How Can I Speed Up Multi-Column LIKE Queries in MySQL?

MySQL의 여러 열에 대한 LIKE 쿼리 속도 향상

SQL에서 SELECT ... LIKE '%text%' 쿼리가 자주 발생하는 경우 다중 열 MySQL 테이블을 사용하는 경우 인덱싱이 성능을 향상시킬 수 있는지 궁금해하는 것은 자연스러운 일입니다. 안타깝게도 왼쪽부터 시작하는 문자를 참조하여 작동하는 인덱스는 LIKE '%text%' 쿼리를 지원할 수 없습니다. 와일드카드는 지정된 텍스트 앞에 다양한 문자를 허용하기 때문입니다.

인덱스에 의존하는 대신 MySQL은 인덱스를 사용하는 것을 권장합니다. MyISAM 테이블에 대한 전체 텍스트 검색(FTS). FTS는 텍스트 열 내의 단어를 색인화하여 대상 텍스트가 열 내의 어느 곳에나 나타나는 경우에도 효율적인 검색을 가능하게 합니다.

MyISAM 테이블이 아닌 테이블에 대한 대체 옵션

다음과 같은 테이블의 경우 MyISAM 기반이 아닌 경우 사용자 정의 인덱싱 시스템을 구현할 수 있습니다. 실제 테이블의 해당 ID와 함께 단어를 저장하는 인덱스 테이블을 만듭니다. 이 접근 방식을 사용하면 LIKE '%text%' 쿼리를 개별 단어 검색으로 분해하여 효율적인 검색이 가능합니다.

디스크 사용량 및 성능에 미치는 영향

FTS 인덱스는 추가 비용을 소비합니다. 기존 인덱스와 비교한 디스크 공간. 그러나 레코드 삽입 및 삭제는 FTS 인덱스 성능에 큰 영향을 미치지 않습니다.

업데이트: InnoDB 테이블에 대한 전체 텍스트 검색

MySQL 5.6부터 전체 텍스트 InnoDB 테이블에도 검색 기능을 사용할 수 있어 쿼리 요구 사항에 맞는 고성능 검색 솔루션을 제공합니다.

위 내용은 MySQL에서 다중 열 LIKE 쿼리 속도를 어떻게 높일 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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