2009년 9월 10일 목요일

테이블관리1 - 관리SQL

테이블 상태 체크나 최적화, 복구등을 수행하기 위한 SQL을 알아보자. 이것은 MySQL서버 기동중에 사용할 수 있다. 명령어 실행중에는 테이블 락이 걸린다. 테이블(스토리지엔진)에 따라서 동작하는 SQL문은 다르다. 적용범위나 세심한 동작, 제한은 버전이 다르면 변경될 수 있으니까 조심해야한다.

CHECK TABLE

문법: CHECK TABLE 테이블명 [,테이블명] ... [체크레벨]
동작테이블: MyISAM, InnoDB, ARCHIVE, CSV(5.1.9-beta이상)
실행에 필요한 권한 : 테이블 접근권한
myisamchk옵션: --check-upgrade, --quick, --fast, --check-only-changed, --medium-check, --extend-check
체크레벨내용:
FOR UPGRADE: 테이블이 MySQL서버에서 올바르게 동작하는지 체크한다. MySQL 5.1.7-beta에서 추가되었음.
QUICK: 부당한 링크체크. 레코드를 스킨하지는 않음.
FAST: 전에 확실히 닫혀지지않았을 것이라고 생각되어지는 테이블만 체크
CHANGED: 전 체크이후에 변경 또는 확실히 닫혀지지 않았을 것이라고 생각되어지는 테이블만 체크
MEDIUM: 기본값. 레코드를 스캔해서 삭제된 링크가 맞는지 그렇지 않은지 체크. 키의 체크섬을 계산해서 확인한다.
EXTENDED: 모든 레코드를 스캔해서 모든 키를 체크한다. 확실하지만 시간이 걸린다.

CHECKSUM TABLE

문법: CHECK TABLE 테이블명 [, 테이블명] ... [QUICK|EXTENDED]
동작테이블: MyISAM
실행에 필요한 권한: 테이블 접근권한
내용: 테이블 체크섬값을 리턴해준다.