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=ALL
MyISAM
테이블에 쓰는 동안 키 버퍼를 플래시하지 마십시오.참고이렇게하면
MyISAM
테이블을 사용하는 동안 다른 프로그램에서 (다른 MySQL 서버에서 myisamchk를 사용하여 등)이 테이블에 액세스하지 마십시오. 그렇게하면 인덱스가 손상 될 수 있습니다.--external-locking
를 이용해도 이러한 위험은 피할 수 없습니다.
다음 시스템 변수는 MyISAM
테이블의 행동에 영향을 미칩니다. 자세한 내용은 섹션 5.1.4 "서버 시스템 변수" 를 참조하십시오.
bulk_insert_buffer_size
대량 삽입 최적화에 사용되는 트리 캐쉬의 크기입니다.
참고이것은 스레드 당 제한입니다.
myisam_max_sort_file_size
MyISAM
인덱스를 다시 만들 때 (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