7.6.5 MyISAM 테이블 유지 관리 일정 설정
문제가 발생하는 것을 기다리는 것보다 테이블 검사를 정기적으로 실행하는 것이 좋습니다. MyISAM
테이블을 체크하거나 수리하는 하나의 방법은 CHECK TABLE
및 REPAIR TABLE
문을 사용하는 것입니다. 섹션 13.7.2 "테이블 유지 보수 문" 을 참조하십시오.
테이블을 확인하는 또 다른 방법은 myisamchk를 사용하는 것입니다. 유지 보수의 목적으로는 myisamchk -s를 사용할 수 있습니다. -s
옵션 ( --silent
의 줄임말)에 의해 자동으로 myisamchk가 실행되고 오류가 발생한 경우에만 메시지가 출력됩니다.
자동 MyISAM
테이블 검사를 사용하는 것이 좋습니다. 예를 들어 컴퓨터가 업데이트 도중에 재부팅을 수행하는 경우 일반적으로 영향을 받았을 가능성이있는 각 테이블이 사용되기 전에 그것을 확인해야합니다. (이들은 "예상 충돌 테이블"입니다.) 서버에 MyISAM
테이블을 자동으로 체크하려면 그것을 --myisam-recover-options
옵션으로 시작합니다. 섹션 5.1.3 "서버 명령어 옵션" 을 참조하십시오.
정상적인 시스템 작동시에도 정기적으로 테이블을 체크하십시오. 예를 들어, crontab
파일에 다음과 같은 라인을 사용하여 주 1 회 cron 작업을 실행하고 중요한 테이블을 확인합니다.
35 0 * * 0 /path/to/myisamchk
--fast --silent /path/to/datadir
/*/*.MYI
이것은 충돌 한 테이블에 대한 정보를 출력하기 위해 테이블을 조사하고 필요에 따라 수정할 수 있습니다.
소개 지난 24 시간 동안 업데이트 된 모든 테이블에 대해 매일 밤 myisamchk -s를 실행합니다. 그 문제가 거의 발생하지 않는 것으로 확인되면 검사의 빈도를 주 1 회 등에 줄일 수 있습니다.
일반적으로 MySQL 테이블은 거의 유지 보수가 필요하지 않습니다. 동적 크기의 행이 MyISAM
테이블 ( VARCHAR
, BLOB
또는 TEXT
컬럼이있는 테이블)에 여러 번 업데이트를 실행하거나 많은 삭제 된 행이있는 테이블이 있으면 가끔 테이블 영역을 조각 모음 / 재사용해야하는 경우가 있습니다. 이것은 문제의 테이블에 OPTIMIZE TABLE
을 사용하여 실행할 수 있습니다. 또는 잠시 동안 mysqld 서버를 중지 할 경우, 서버가 중지 된 위치를 데이터 디렉토리로 변경하고 다음 명령을 사용합니다.
shell> myisamchk -r -s --sort-index --myisam_sort_buffer_size=16M */*.MYI