MyISAM 스토리지는 MySQL 3.23 버전이후에 디폴트 스토리지 엔진이었다. 하지만 MySQL 5.5 버전 이후에는 InnoDB로 대체되었다.
전반적인 특징은 가볍고 좋은 퍼포먼스를 내는 non - transction 엔진이다.
또한 시스템간의 복사가 쉬우며 data footprint가 작다.
MyISAM 스토리지의 특징
- MyISAM 스토리지는 두가지 파일로 디스크에 저장된다.
- 파일의 이름은 테이블의 이름으로 시작하는 네이밍을 가지고 파일 형식을 나타내는 확장자를 가진다.
- 데이터 파일 확장자 : .MYD
- 인덱스 파일 확장자 : .MYI
MyISAM 스토리지 테이블을 만들기 위한 명령어
CREATE TABLE t (i INT) ENGINE = MYISAM;
이렇게 명시하는 이유는 이전에 언급하였드시 명시를 안하면 Default인 InnoDB가 엔진으로 선택되기 때문이다.
- 트랜젝션을 지원하지 않는다.
- FK를 지원하지 않는다.
- FULLTEXT indexexes를 지원한다.
- 256TB의 스토리지 용량을 제공한다.
- 테이블당 64개의 인덱스를 가지며 32개의 컬럼을 가질 수 있다. (이때 인덱스의 길이는 1000 바이트)
- 모든 데이터는 우선적으로 낮은 바이트를 저장된다.
- 이러한 저장 방식은 data machine 과 operation System을 독립적으로 만든다.
- 낮은 바이트를 우선적으로 저장하는 방식은 속도 측면에서 패널티가 거의 없다.
- 모든 숫자 키값은 더 나은 압축을 위해 높은 바이트를 우선적으로 저장한다.
- row가 정렬된 순서로 저장되어 질때 인덱스 트리는 위의 노드가 하나의 키 값을 포함하도록 하기 위해서 잘게 쪼갠다.
- 이러한 과정은 인덱스 트리의 공간 활용률을 높힌다.
- 테이블당 AUTO_INCREMENT 컬럼의 내부적인 처리가 지원된다.
- MYISAM은 해당 컬럼에 대해서 자동적으로 INSERT, UPDATE 가 이루어 진다. -> 이렇게하면 AUTO_INCREMETN 가 최소 10% 빨라진다.
- 시퀀스의 가장 꼭대기 값은 삭제 이후엔 재사용되지 않는다.
- 동시적인 INSERT가 가능하다.
References
https://www.physicsforums.com/threads/what-is-code-binary-portability-computer-science.281338/
https://mariadb.com/kb/en/myisam-overview/
https://mariadb.com/kb/en/full-text-index-overview/
'CS > DataBase' 카테고리의 다른 글
(MySQL) MyISAM vs InnoDB (0) | 2020.02.16 |
---|---|
(MySQL) Inno Storage 엔진 (0) | 2020.02.16 |
(MySQL) 스토리지 엔진 (0) | 2020.02.16 |
(ORACLE) 오라클의 데이터 구조 (0) | 2019.12.11 |
(ORACLE) SQL 문 분석과 공유 풀 (0) | 2019.12.05 |