LIKE 키워드는 SQLite 및/또는 MySQL에서 인덱스를 사용합니까?SQLite (및 심지어 MysQL)에서 LIKE
와일드 카드 일치가 색인을 사용하지 않을 수도 있지만 비교를 시작하는 방법에 대해 알고 싶습니다.
LIKE 키워드는 SQLite 및/또는 MySQL에서 인덱스를 사용합니까?SQLite (및 심지어 MysQL)에서 LIKE
와일드 카드 일치가 색인을 사용하지 않을 수도 있지만 비교를 시작하는 방법에 대해 알고 싶습니다.
그것은 따라 달라
WHERE field1 LIKE 'test' << can use index
WHERE field1 LIKE 'test%' << can also use index
WHERE field1 LIKE '%test' << cannot use index
WHERE field1 LIKE '_test' << cannot use index
은 긴 와일드 카드가 시작이기 때문에, 인덱스는 사용할 수 없습니다. 와일드 카드 전에 데이터를 고정한 경우 색인을 사용할 수 있습니다.
PostgreSQL과 같은 일부 데이터베이스에는 모든 경우에 인덱스를 사용할 수있는 트릭이 있지만 MySQL과 SQLite는 그렇지 않습니다.
이것은 다음과 같이 도움이 될 수 있습니다. How MySQL Uses Indexes.
예, 감사합니다. 이것은 모두 의미가 있습니다. 나는 SQLite가 매우 비슷할 것이라고 추측하지만 당신은 알 수 있겠는가? http://www.sqlite.org/lang_expr.html에서 찾을 수 없습니다. – Anthony
아니요, MySQL에 대해서만 알고 있습니다. – michael667
의미가 있습니다. 이제는 MySQL에서도 마찬가지입니다. SQLite도? – Anthony
@Anthony : 예, 이것은 SQLite에도 해당됩니다. – Johan
감사합니다. 웬일인지 두 번째 문장을 완전히 놓쳤습니다. 거듭된 질문에 사과드립니다. – Anthony