13.7.2.3 CHECKSUM TABLE 구문
CHECKSUM TABLE tbl_name
[, tbl_name
] ... [QUICK | EXTENDED]
CHECKSUM TABLE
은 테이블의 내용에 대한 체크섬 을보고합니다. 체크섬 작업 중에 해당 테이블은 InnoDB
와 MyISAM
에 대한 읽기 잠금으로 잠겨 있습니다. 이 문을 사용하면 그 내용이 백업, 롤백 또는 데이터를 원래 알려진 상태로 되 돌리는 것을 목적으로 한 기타 작업 전후에 같은임을 확인할 수 있습니다. 이 문은이 테이블에 대한 SELECT
권한이 필요합니다.
성능 고려 사항
기본적으로 테이블 전체가 한 줄에 읽은 체크섬이 계산됩니다. 큰 테이블에서는 시간이 오래 걸릴 수 있기 때문에이 작업은 상황에 따라에만 실행됩니다. 이 한 줄 당 계산은 InnoDB
와 MyISAM
이외의 다른 모든 스토리지 엔진 및 CHECKSUM=1
구에서 생성되지 않은 MyISAM
테이블의 경우 EXTENDED
절에서 얻어지는 것과 동일합니다.
CHECKSUM=1
구에서 만든 MyISAM
테이블의 경우 CHECKSUM TABLE
또는 CHECKSUM TABLE ... QUICK
은 매우 빨리 반환 할 수있는 "라이브"테이블 체크섬을 반환합니다. 테이블이이 모든 조건을 충족하지 않으면 QUICK
의한 방법은 NULL
을 반환합니다. CHECKSUM
절의 구문은 섹션 13.1.17 "CREATE TABLE 구문" 을 참조하십시오.
존재하지 않는 테이블에 대해서는 CHECKSUM TABLE
은 NULL
을 반환하고 경고를 생성합니다.
MySQL 5.6.4 이전에는 EXTENDED
옵션이 사용되지 않는 한, CHECKSUM TABLE
은 파티션 된 테이블에 대해 0을 반환했습니다. (Bug # 11933226, Bug # 60681)
체크섬 값은 테이블 행 형식에 따라 다릅니다. 행 형식이 변경된 경우에는 체크섬이 변경됩니다. 예를 들어, VARCHAR
의 저장 포맷은 MySQL 4.1과 5.0 사이에서 변경 되었기 때문에 4.1 테이블이 MySQL 5.0으로 업그레이드 된 경우 체크섬 값은 변경 될 수 있습니다.
두 테이블의 체크섬이 다르면 그 테이블이 어떤 점에서 차이가 거의 확실합니다. 그러나 CHECKSUM TABLE
에 의해 사용되는 해쉬 함수는 충돌이없는 것은 보장되지 않으므로 동일하지 않은 두 테이블이 같은 체크섬을 생성 할 가능성이 약간 있습니다.