2009-12-23 5 views
2

테이블에 대한 전체 텍스트 인덱스를 추가하려고하지만 적용되지 않는 것 같습니다.FULLTEXT 인덱스가 채워지지 않는 이유 - MYSQL

ADD FULLTEXT `genre` (
`genre` 
) 

쿼리를 실행하지만 기본은 유지 단지 (1) (내가 몇 천 기록을 ahve에도 불구하고)

내가 수리를 분석 시도하고 인덱스를 업데이트 할 것 같았다 둘. 일반 인덱스를 만들면 카디널리티가 즉시 업데이트됩니다.

일치 항목을 알고 있더라도 인덱스에 대해 select는 빈 세트를 반환합니다.

답변

2

카디널리티는 FULLTEXT 개의 색인에 대해서는 거의 의미가 없습니다. 하나의 레코드가 여러 키 (단어 당 하나의 키)로 참조 될 수 있기 때문에 카디널리티는 거의 색인이 아닙니다. 이 적용 전혀인지

FULLTEXT 인덱스는 항상 쿼리에 사용됩니다 :

SELECT * 
FROM genre 
WHERE MATCH(genre) AGAINST ('mystring') 

인덱스,하지만 것입니다 오래되지 인덱스 단어 미만 ft_min_word_len 자 (기본적으로 4 인) 따라서 쿼리가 일치하지 않습니다.

작동해야한다고 생각하는 질문을 게시 할 수는 있지만 그렇지 않습니까?

+0

빙고. 내 일치 행에는 3 단어 만있었습니다. 나는 INDEX에서 LIKE를 사용하기로 전환했으며 성능 차이는 무시할 수 있습니다. 감사합니다. – Eddie

+0

'@ Eddie' :'MySQL' 설정에서'ft_min_word_len'을 변경할 수도 있습니다. – Quassnoi

관련 문제