2016-09-16 6 views
0

내 쿼리에 LIKE "%BLABLA"이 포함되어 있습니다. 인덱스를 추가하면 쿼리가 최적화됩니까? 그렇다면 클러스터 된 및 클러스터되지 않은 B + Tree 인덱싱 모두 내 쿼리를 향상시킬 것입니까?SQL에서 이상한 와일드 카드 인덱싱

감사합니다.

+0

사용중인 dbms에 태그를 지정하십시오. 이것은 제품 특정 질문입니다! – jarlh

+1

'LIKE' 필터는 트리 탐색 중에 와일드 카드 뒤에 나오는 모든 것을 사용할 수 있다고 생각하지 않습니다. 그래서 나는이 특정 쿼리에서 인덱스가 도움이 될 것이라고 생각하지 않습니다. –

+0

@TimBiegeleisen하지만 여기에 : http : //stackoverflow.com/questions/543580/equals-vs-like/39531185#39531185 그들은 다른 LIKE 식에도 가능하다고합니다. – Codevan

답변

1

LIKE 'abc'= 'abc'과 매우 유사합니다.
LIKE 'abc%'은 "범위"이므로 색인을 생성 할 수 있습니다.
LIKE '%abc'의 선두가 와일드 카드이므로 색인을 사용할 수 없습니다.

검색어에 대해 수행 할 수있는 작업에 대해 논의하려면 전체 검색어와 SHOW CREATE TABLE을 제공하십시오.

1

다른 필드에 역 데이터를 저장하고 역 필드에 인덱스를 추가하고 역 필드에 대해 쿼리 할 수 ​​있습니다. LIKE '%abc'을 사용하는 대신 역순으로 된 필드를 사용하여 LIKE 'cba%'을 사용합니다.