15.4.1 CSV 테이블의 복구 및 확인
CSV 스토리지 엔진은 CSV 테이블을 확인하고, 가능한 경우는 깨진 CSV 테이블을 복구 할 CHECK
및 REPAIR
문을 지원합니다.
CHECK
문을 실행하면 올바른 필드 구분 이스케이프 된 필드 (따옴표 대응 또는 부족) 올바른 필드 수 (테이블 정의와 비교) 및 해당 CSV 메타 파일의 존재를 찾는 것으로, CSV 파일의 사용 성이 확인됩니다. 발견 된 첫 번째 잘못된 줄은 오류를보고합니다. 유효한 테이블을 선택하면 다음과 같은 출력이 생성됩니다.
mysql> check table csvtest;
+--------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------------+-------+----------+----------+
| test.csvtest | check | status | OK |
+--------------+-------+----------+----------+
1 row in set (0.00 sec)
깨진 데이터를 확인하면 오류가 반환됩니다.
mysql> check table csvtest;
+--------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------------+-------+----------+----------+
| test.csvtest | check | error | Corrupt |
+--------------+-------+----------+----------+
1 row in set (0.01 sec)
검사가 실패하면 테이블은 충돌 (손상)로 표시됩니다. 테이블이 손상 및 표시되면 다음 CHECK
를 실행했을 때나 SELECT
문을 실행할 때 자동으로 복구됩니다. 해당 손상 상태와 새로운 상태는 CHECK
를 수행 할 때 표시됩니다.
mysql> check table csvtest;
+--------------+-------+----------+----------------------------+
| Table | Op | Msg_type | Msg_text |
+--------------+-------+----------+----------------------------+
| test.csvtest | check | warning | Table is marked as crashed |
| test.csvtest | check | status | OK |
+--------------+-------+----------+----------------------------+
2 rows in set (0.08 sec)
테이블을 수정하기 위해 REPAIR
를 사용할 수 있습니다. 이것은 기존의 CSV 데이터에서 많은 유효한 행을 복사하여 기존 CSV 파일을 복구 된 코드로 대체합니다. 손상된 데이터 이후의 모든 행은 손실됩니다.
mysql> repair table csvtest;
+--------------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------------+--------+----------+----------+
| test.csvtest | repair | status | OK |
+--------------+--------+----------+----------+
1 row in set (0.02 sec)
경고
복구시 손상된 첫 번째 행까지의 CSV 파일의 행만 새로운 테이블로 복사됩니다. 손상된 첫 번째 행에서 테이블의 끝까지의 다른 모든 행은 유효한 행도 삭제됩니다.