Loading...
MySQL 9.5 Reference Manual 9.5의 18.2.1 MyISAM Startup Options의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
다음의 [mysqld](https://dev.mysql.com/doc/refman/9.5/en/mysqld.html "6.3.1 mysqld — The MySQL Server) 옵션들은 MyISAM 테이블의 동작을 변경하는 데 사용할 수 있습니다. 추가 정보는 Section 7.1.7, “Server Command Options”를 참조하십시오.
Table 18.3 MyISAM Option and Variable Reference
| Name | Cmd-Line | Option File | System Var | Status Var | Var Scope | Dynamic |
|---|---|---|---|---|---|---|
| bulk_insert_buffer_size | Yes | Yes | Yes | Both | Yes | |
| concurrent_insert | Yes | Yes | Yes | Global | Yes | |
| delay_key_write | Yes | Yes | Yes | Global | Yes | |
| have_rtree_keys | Yes | Global | No | |||
| key_buffer_size | Yes | Yes | Yes | Global | Yes | |
| log-isam | Yes | Yes | ||||
| myisam-block-size | Yes | Yes | ||||
| myisam_data_pointer_size | Yes | Yes | Yes | Global | Yes | |
| myisam_max_sort_file_size | Yes | Yes | Yes | Global | Yes | |
| myisam_mmap_size | Yes | Yes | Yes | Global | No | |
| myisam_recover_options | Yes | Yes | Yes | Global | No | |
| myisam_sort_buffer_size | Yes | Yes | Yes | Both | Yes | |
| myisam_stats_method | Yes | Yes | Yes | Both | Yes | |
| myisam_use_mmap | Yes | Yes | Yes | Global | Yes | |
| tmp_table_size | Yes | Yes | Yes | Both | Yes |
| Name | Cmd-Line | Option File | System Var | Status Var | Var Scope | Dynamic |
|---|
다음 시스템 변수들은 MyISAM 테이블의 동작에 영향을 줍니다. 추가 정보는
Section 7.1.8, “Server System Variables”를 참조하십시오.
대량 insert 최적화에 사용되는 트리 캐시의 크기입니다.
참고
이 값은 스레드당 제한입니다!
어떠한 MyISAM 테이블에 대해서도 쓰기 사이에 키 버퍼를 플러시하지 않습니다.
참고
이렇게 설정했다면, 테이블이 사용 중일 때 다른 프로그램(예: 다른 MySQL 서버 또는
myisamchk로부터)에서
MyISAM 테이블에 접근해서는 안 됩니다. 이렇게 하면 인덱스 손상을 초래할 위험이 있습니다.
--external-locking을 사용하더라도
이 위험이 제거되지는 않습니다.
MyISAM 인덱스를 다시 생성하는 동안
(REPAIR TABLE,
ALTER TABLE,
LOAD DATA 실행 시) MySQL이 사용할 수 있도록 허용되는
임시 파일의 최대 크기입니다. 파일 크기가 이 값보다 커져야 한다면, 인덱스는
보다 느린 키 캐시를 사용하여 생성됩니다. 값은 바이트 단위로 지정됩니다.
크래시된 MyISAM 테이블의 자동 복구에 대한 모드를 설정합니다.
테이블을 복구할 때 사용하는 버퍼의 크기를 설정합니다.
자동 복구는
myisam_recover_options 시스템 변수를 설정하여
mysqld를 시작한 경우에 활성화됩니다.
이 경우, 서버가 MyISAM 테이블을 열 때
그 테이블이 크래시된 것으로 표시되어 있는지, 또는 해당 테이블에 대한 open count 변수이 0이 아닌데
서버가 외부 잠금 비활성화 상태로 실행되고 있는지를 검사합니다.
이 두 조건 중 하나라도 참이면 다음과 같은 일이 발생합니다:
서버가 테이블에 오류가 있는지 검사합니다.
서버가 오류를 발견하면, 데이터 파일을 다시 생성하지 않고 정렬을 사용하는 빠른 테이블 복구를 시도합니다.
데이터 파일의 오류(예: 중복 키 오류) 때문에 복구가 실패하면, 이번에는 데이터 파일을 다시 생성하면서 재시도를 합니다.
복구가 여전히 실패하면, 서버는 마지막으로 이전의 복구 방식 (정렬 없이 행 단위로 쓰기)을 사용하여 다시 시도합니다. 이 방식은 어떤 유형의 오류라도 복구할 수 있어야 하며, 필요한 디스크 공간이 적습니다.
복구가 이전에 완료된 구문들로부터 모든 행을 복구할 수 없고,
myisam_recover_options 시스템 변수 값에
FORCE를 지정하지 않은 경우, 자동 복구는 에러 로그에 오류 메시지를 남기고 중단됩니다:
1Error: Couldn't repair table: test.g00pages
FORCE를 지정하면, 대신 다음과 같은 경고가 기록됩니다:
1Warning: Found 344 of 354 rows when repairing ./test/g00pages
자동 복구 값에 BACKUP이 포함되어 있으면,
복구 과정은 tbl_name-datetime.BAK 형식의 이름을 가진 파일들을 생성합니다.
데이터베이스 디렉터리에서 이 파일들을 백업 매체로 자동으로 옮기는
cron 스크립트를 두어야 합니다.
18.2 The MyISAM Storage Engine
18.2.2 Space Needed for Keys