2015-01-26 1 views
0

최근에 MySQL 데이터베이스 마이그레이션을 수행하면서 FTS 인덱싱과 관련된 문제점을 발견했습니다.FTS 인덱스를 사용하여 MySQL 데이터베이스 내보내기

나는 다음과 같은 명령을 사용하여 데이터베이스를 수출 :

mysqldump -p -u username database_name > export.sql 

와 함께 수입 : 내가 달릴

mysql -p -u username database_name < export.sql 

* 아래 여기

문제를 생산하는 단계입니다 필요한 각 테이블에 대한 FTS 인덱싱 명령 :

ALTER TABLE table_name ADD FULLTEXT(colnames...)

이 테이블의 테이블 상태를 확인할 때 레코드 수는 정확합니다. 그러나 index_length은 원래 데이터베이스 (우리가 수출 한 데이터베이스)와 매우 다릅니다.

그 결과 FTS가 부분적으로 작동했습니다 (일부 문자열 만 일치했지만 일부는 일치하지 않음). 그래서 내가 "test"와 같은 문자열을 가지고 MATCH을 수행한다면, 둘 다 작동 할 것입니다. 그러나 "hello"와 같은 문자열로 MATCH을했을 때, 원래의 데이터베이스에서만 작동합니다.

이 문제의 원인은 무엇입니까? 나는 모든 테이블이 FTS 인덱스에 추가되도록 매우 신중했습니다. 테이블에는 각각 약 150,000 개의 레코드가 있습니다.

답변

0

항상 그렇습니다. StackOverflow에 문제를 푸시려고 노력하고 몇 분 안에 게시하면 답변을 얻을 수 있습니다.

그래서 문제는 SQL 구성 파일의 FTS에 대한 매개 변수 때문입니다. 이전에는 불용어 목록을 삭제하고 최소 단어 길이를 줄였습니다. 이 매개 변수를 새 서버로 가져 오는 것을 잊었습니다.

관련 문제