15.2.1 MyISAM 시작 옵션
MyISAM 테이블의 행동을 바꾸기 위하여 다음의 mysqld 옵션을 사용할 수 있습니다. 자세한 내용은 섹션 5.1.3 "서버 명령어 옵션" 을 참조하십시오.
표 15.3 MyISAM 옵션 / 변수 참조
| 이름 | 명령 행 | 옵션 파일 | 시스템 변수 | 상태 변수 | 변수 범위 | 동적 |
|---|---|---|---|---|---|---|
| bulk_insert_buffer_size | 예 | 예 | 예 | 모두 | 예 | |
| concurrent_insert | 예 | 예 | 예 | 글로벌 | 예 | |
| delay-key-write | 예 | 예 | 글로벌 | 예 | ||
| - 변수 : delay_key_write | 예 | 글로벌 | 예 | |||
| have_rtree_keys | 예 | 글로벌 | 아니오 | |||
| key_buffer_size | 예 | 예 | 예 | 글로벌 | 예 | |
| log-isam | 예 | 예 | ||||
| myisam-block-size | 예 | 예 | ||||
| myisam_data_pointer_size | 예 | 예 | 예 | 글로벌 | 예 | |
| myisam_max_sort_file_size | 예 | 예 | 예 | 글로벌 | 예 | |
| myisam_mmap_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
| myisam-recover-options | 예 | 예 | ||||
| - 변수 : myisam_recover_options | ||||||
| myisam_recover_options | 예 | 글로벌 | 아니오 | |||
| myisam_repair_threads | 예 | 예 | 예 | 모두 | 예 | |
| myisam_sort_buffer_size | 예 | 예 | 예 | 모두 | 예 | |
| myisam_stats_method | 예 | 예 | 예 | 모두 | 예 | |
| myisam_use_mmap | 예 | 예 | 예 | 글로벌 | 예 | |
| skip-concurrent-insert | 예 | 예 | ||||
| - 변수 : concurrent_insert | ||||||
| tmp_table_size | 예 | 예 | 예 | 모두 | 예 |
--myisam-recover-options=mode충돌
MyISAM테이블의 자동 복구 모드를 설정합니다.--delay-key-write=ALLMyISAM테이블에 쓰는 동안 키 버퍼를 플래시하지 마십시오.참고이렇게하면
MyISAM테이블을 사용하는 동안 다른 프로그램에서 (다른 MySQL 서버에서 myisamchk를 사용하여 등)이 테이블에 액세스하지 마십시오. 그렇게하면 인덱스가 손상 될 수 있습니다.--external-locking를 이용해도 이러한 위험은 피할 수 없습니다.
다음 시스템 변수는 MyISAM 테이블의 행동에 영향을 미칩니다. 자세한 내용은 섹션 5.1.4 "서버 시스템 변수" 를 참조하십시오.
bulk_insert_buffer_size대량 삽입 최적화에 사용되는 트리 캐쉬의 크기입니다.
참고이것은 스레드 당 제한입니다.
myisam_max_sort_file_sizeMyISAM인덱스를 다시 만들 때 (REPAIR TABLE,ALTER TABLE또는LOAD DATA INFILE동안) MySQL이 사용을 허가되는 임시 파일의 최대 크기. 파일 크기가이 값보다 크면 더 느린 키 캐시를 대신 사용하여 인덱싱됩니다. 값은 바이트 단위로 지정됩니다.myisam_sort_buffer_size테이블을 복구 할 때 사용되는 버퍼의 크기를 설정합니다.
자동 복구가 활성화되는 것은 mysqld를 --myisam-recover-options 옵션으로 기동했을 경우입니다. 이 경우 서버가 MyISAM 테이블을 열 때 테이블에 충돌 마크가 붙어 있는지 여부와 테이블의 오픈 카운트 변수가 0이 아닌 여부, 그리고 외부 잠금이 사용 불가능한 상태로 서버를 작동시켜 있는지 여부를 확인합니다. 이러한 조건 중 하나가 true 인 경우, 다음 일이 일어납니다.
서버는 테이블에 오류가 있는지 확인합니다.
서버에 오류가 발생하면 신속한 테이블 복구합니다 (데이터 파일의 정렬은 수행하지만 다시 작성하지 않습니다).
데이터 파일에 오류가 있기 때문에 (예를 들어, 중복 키 에러 등) 수복이 실패했을 경우, 서버는 다시 시도 이번에는 데이터 파일을 다시 만듭니다.
그래도 복구가 실패하면, 서버는 다시 이전 복구 옵션 방식으로 시도합니다 (정렬을하지 않고 각 행에 기입합니다). 이 방법은 어떤 유형의 오류도 복구 할 것이며, 디스크 공간 요구 사항은 낮아지고 있습니다.
이 복구에서 이전에 실행 한 문에서 모든 행을 복구하지 못하고 FORCE 를 --myisam-recover-options 옵션 값에 지정하지 않은 경우 자동 복구는 오류 메시지를 오류 로그에 써 중지 합니다.
Error : Could not repair table : test.g00pages
FORCE 를 지정하면 대신 이러한 경고가 적혀 있습니다.
Warning : Found 344 of 354 rows when repairing ./test/g00pages
자동 복구의 값에 BACKUP 이 포함되어 있으면 복구 프로세스는 양식 이름을 가진 파일을 만듭니다. 이러한 파일을 자동으로 데이터베이스 디렉토리에서 백업 미디어로 이동하는 cron 스크립트를 가지는 것이 좋습니다. tbl_name-datetime .BAK