텍스트 열에 전체 텍스트 인덱스가 있으면 SQL 쿼리를 사용해야합니다. 그렇지 않으면 O (N²) 접근 방식이 LIKE '%word%'
으로 저하됩니까?인덱스가있는 경우 전체 텍스트 검색을 사용하는 SQL 쿼리를 작성하는 방법은 무엇입니까?
IF has_full_text_index('mycolumn')
select mytable_id from mytable where contains(mycolumn, 'word')
ELSE
select mytable_id from mytable where mycolumn like '%word%'
ENDIF
쿼리는 프로그램에 의해 생성됩니다
나는 대답 같은 것을 할 전망이다. 쿼리에는 항상 일치시킬 단어가 하나만 있습니다. 열에 전체 텍스트 인덱스가 있는지 확인하는 테스트는 빠릅니다.
귀하의 질문에 내 생각이 맞지 않는 것 같아요. 그것은 당신의 테이블입니다. 미리 컬럼에 전체 텍스트 인덱스가 있는지 여부를 알아야합니까? –
아니요,하지만이 코드가 필요한 복잡한 환경에 들어가기를 원하지 않았습니다. 가장 간단한 설명은 인덱싱 서비스를 사용하지 않고 일부 사용자가 데이터베이스를 사용하고 소프트웨어가 여전히 작동해야한다는 것입니다. – neves