최근에 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 개의 레코드가 있습니다.