> 데이터 베이스 > MySQL 튜토리얼 > SQL `LIKE` 대 `=`: 언제 다른 것보다 빠를까요?

SQL `LIKE` 대 `=`: 언제 다른 것보다 빠를까요?

Mary-Kate Olsen
풀어 주다: 2025-01-04 16:58:40
원래의
192명이 탐색했습니다.

SQL `LIKE` vs `=`: When Is One Faster Than the Other?

SQL 'like' 대 '=' 성능: 상황별 분석

'like' 또는 '='가 다음과 같은 경우에 더 나은 성능을 발휘하는지에 대한 질문 SQL 와일드카드를 사용하는 문제는 과거에 해결되었지만 '='이 더 빠르다는 것이 일반적인 통념입니다. 그러나 쿼리의 특정 컨텍스트를 고려하는 것이 중요합니다.

열에 제한된 수의 하드코딩된 고정 varchar 식별자가 포함되어 있고 그 중 하나와 일치하는 모든 행을 선택하는 작업이 있는 시나리오에서는 '좋아요'가 장점이 있는 것처럼 보일 수도 있습니다. '좋아요'는 일치 여부를 확인하기 위해 초기 문자 몇 개만 테스트하면 되는 반면, '='는 전체 문자열을 비교해야 합니다.

그러나 John Nelson의 기사(다음 위치에 보관됨)에 설명된 대로 https://web.archive.org/web/20150209022016/http://myitforum.com/cs2/blogs/jnelson/archive/2007/11/16/108354.aspx), 'like'를 사용한 인덱스 사용 규칙 미묘한 차이가 있습니다.

  • 필터가 색인된 필드에 '='를 사용하는 경우 INDEX/CLUSTERED INDEX SEEK가 사용될 가능성이 높습니다.
  • 'like'를 와일드카드 없이 사용하는 경우 인덱스 사용법은 '='의 경우와 유사합니다.
  • 'like'를 와일드카드와 함께 사용하는 경우 시작 부분에 와일드카드를 사용하면 인덱스의 전체 또는 부분 범위에 대한 INDEX SCAN을 사용할 수 있습니다.
  • 'like'를 먼저 문자열을 사용하고 그 뒤에 와일드카드를 사용하면 INDEX SEEK를 사용하여 일치하는 행을 찾은 다음 정확히 일치하는지 확인합니다.

따라서 'like' 대 '='의 성능은 행에 따라 달라집니다. 특정 쿼리 컨텍스트, 와일드카드 위치 및 인덱스 존재 여부. 하드코딩된 식별자 수가 제한된 경우 'like'는 실제로 전체 문자열 비교에서 '='보다 더 빠르게 수행될 수 있습니다. 그러나 최적의 접근 방식을 결정하려면 특정 사용 사례를 평가하고 인덱스 최적화를 고려하는 것이 중요합니다.

위 내용은 SQL `LIKE` 대 `=`: 언제 다른 것보다 빠를까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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