[MySQL] CHECKSUM TABLE
- Databases/MySQL
- 2020. 11. 6.
■ CHECKSUM TABLE 문
CHECKSUM TABLE tbl_name [, tbl_name] ... [QUICK | EXTENDED]
CHECKSUM TABLE은 테이블 내용에 대한 체크섬을 보고합니다. 이 명령문을 사용하여 백업, 롤백 또는 데이터를 알려진 상태로 되돌리려는 기타 작업 전후의 내용이 동일한지 확인할 수 있습니다.
이 명령문에는 테이블에 대한 SELECT권한이 필요합니다.
이 명령문은 뷰에 지원되지 않습니다. 뷰에 대해 CHECKSUM TABLE을 실행하면 체크섬 값은 항상 NULL이며 경고가 리턴됩니다.
존재하지 않는 테이블의 경우 CHECKSUM TABLE은 NULL을 반환하고 경고를 생성합니다.
체크섬 작업 중에 테이블은 InnoDB 및 MyISAM에 대한 읽기 잠금으로 잠 깁니다.
▶︎ 성능 고려 사항
기본적으로 전체 테이블은 한행씩 읽히고 체크섬이 계산됩니다. 큰 테이블의 경우 시간이 오래 걸릴 수 있으므로 때때로 이 작업을 수행해야합니다. 이 행 단위 계산은 InnoDB 및 MyISAM 이외의 다른 모든 스토리지 엔진과 CHECKSUM=1로 생성되지 않은 MyISAM 테이블에 대해 EXTENDED 절을 사용하여 계산됩니다.
CHECKSUM=1로 작성된 MyISAM 테이블의 경우, CHECKSUM TABLE 또는 CHECKSUM TABLE ... QUICK은 매우 빠르게 리턴될 수 있는“실시간”테이블 체크섬을 리턴합니다. 테이블이 이 모든 조건을 충족하지 않으면 QUICK메소드는 NULL을 리턴합니다. QUICK 메소드는 InnoDB 테이블에서 지원되지 않습니다.
체크섬 값은 테이블 행 형식에 따라 다릅니다. 행 형식이 변경되면 체크섬도 변경됩니다. 예를 들어, TIME, DATETIME 및 TIMESTAMP와 같은 시간 유형의 스토리지 형식은 MySQL 5.6.5 이전의 MySQL 5.6에서 변경되었으므로 5.5 테이블이 MySQL 5.6으로 업그레이드되면 체크섬 값이 변경될 수 있습니다.
중요사항
두 테이블의 체크섬이 다른 경우 테이블이 어떤 방식으로 되어 있던 다르다는것이 거의 확실합니다. 그러나 CHECKSUM TABLE에서 사용하는 해싱 함수는 충돌이 없는것으로 보장되지 않으므로 동일하지 않은 두 테이블이 동일한 체크섬을 생성할 가능성이 약간 있습니다.
'Databases > MySQL' 카테고리의 다른 글
[MySQL] root 암호 분실시 재설정 방법 (0) | 2020.11.09 |
---|---|
[MySQL] Binary Log 관련 명령 (0) | 2020.11.08 |
[MySQL] CHECK TABLE & Repair TABLE (0) | 2020.11.03 |
[MySQL] REPAIR TABLE 최적화 문법 (0) | 2020.11.02 |
[MySQL] Optimize Table & Analyze Table (0) | 2020.10.30 |