집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 다중 열 LIKE 쿼리 속도를 어떻게 높일 수 있습니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!