마이샘
MyISAM개발자 | 오라클 코퍼레이션 |
---|---|
기록 위치 | C |
운영 체제 | 크로스 플랫폼 |
유형 | 데이터베이스 엔진 |
면허증 | GNU 일반 공중 사용권 |
웹사이트 | dev |
MyISAM은 2009년 12월에 5.5가 출시되기 전의 MySQL 관계형 데이터베이스 관리 시스템 버전의 기본 스토리지 엔진이었습니다.[1]기존 ISAM 코드를 기반으로 하지만 유용한 확장자가 많다.
파일 시스템
각 MyISAM 테이블은 세 개의 파일로 디스크에 저장된다(파티션되지 않은 경우).파일에는 테이블 이름으로 시작하는 이름이 있고 파일 형식을 나타내는 확장자가 있다.MySQL은 테이블의 정의를 저장하기 위해 .frm 파일을 사용하지만, 이 파일은 MyISAM 엔진의 일부가 아니라 서버의 일부분이다.데이터 파일에 가 있다.MYD(MYData) 확장.인덱스 파일에는 .MYI(MYNdex) 확장.인덱스 파일은 손실된 경우 인덱스를 다시 생성하여 항상 재생성할 수 있다.
파일 형식은 ROW_FORMAT 테이블 옵션에 따라 달라진다.다음과 같은 형식을 사용할 수 있다.
- 고정: 고정은 모든 데이터(변수 길이 유형 포함)의 길이가 고정된 형식이다.이 형식은 읽기 더 빠르고, 손상된 테이블 수리를 개선한다.테이블에 큰 가변 길이 열(BLOB 또는 TEXT)이 포함되어 있으면 FINED 형식을 사용할 수 없다.
- 동적: 가변 길이 열은 고정된 길이 크기를 가지고 있지 않다.이 형식은 읽기에는 조금 느리지만 디스크의 공간을 절약한다.
- 압축됨: MySQL이 실행되지 않는 동안 전용 도구로 압축 테이블을 만들 수 있으며 읽기 전용입니다.이것은 보통 그들을 생존할 수 없는 옵션으로 만들지만, 압축률은 대체품보다 일반적으로 더 높다.
MyISAM 파일은 시스템에 의존하지 않으며 MyISAM은 트랜잭션 파일이 아니기 때문에, 그들의 컨텐츠는 현재 서버 워크로드에 의존하지 않는다.따라서 서로 다른 서버 간에 복사하는 것이 가능하다.
특징들
MyISAM은 읽기 작업이 많고 쓰기가 거의 없거나 전혀 없는 환경에 최적화되어 있다.MyISAM을 선호할 수 있는 일반적인 영역은 매우 큰 테이블에 대한 쿼리를 포함하기 때문에 데이터 웨어하우스로, 이러한 테이블의 업데이트는 데이터베이스가 사용되지 않을 때(일반적으로 야간에) 이루어진다.
MyISAM이 빠른 읽기를 허용하는 이유는 각 입력점이 데이터 파일의 레코드를 가리키고 포인터가 파일 시작부터 오프셋되는 등 인덱스의 구조 때문이다.이렇게 하면 기록을 빨리 읽을 수 있으며, 특히 형식이 고정되어 있을 때 더욱 그러하다.따라서 행의 길이는 일정하다.데이터 파일 끝에 새 행이 추가되기 때문에 삽입도 쉽다.그러나 삭제 및 업데이트 작업은 더 문제가 된다. 삭제는 빈 공간을 남겨두어야 한다. 그렇지 않으면 행의 오프셋이 변경된다. 행의 길이가 짧아짐에 따라 업데이트도 마찬가지다. 업데이트로 행이 길어지면 행이 조각난다.행을 조각 모음하고 빈 공간을 확보하려면 Optimize TABLE 명령을 실행해야 한다.이러한 간단한 메커니즘 때문에 MyISAM 지수 통계는 대개 상당히 정확하다.
그러나 MyISAM의 단순함에는 몇 가지 단점이 있다.MyISAM의 가장 큰 결함은 거래 지원의 부재다.또한, 외래 키는 지원되지 않는다.일반적인 사용 사례에서 InnoDB는 MyISAM보다 빠른 것 같다.[2]
MySQL 5.5 이상 버전은 참조 무결성 제약 및 높은 동시성을 보장하기 위해 InnoDB 엔진으로 전환되었다.
MyISAM은 FULLTEXT 인덱싱 및 OpenGIS 데이터 유형을 지원한다.
포크
마리아DB는 "MyISAM에 대한 크래쉬-세이프 대안"으로 묘사되는 Aria라는 저장 엔진을 가지고 있다.[3] 그러나 마리아DB 개발자들은 여전히 MyISAM 코드를 작업한다.주요 개선사항은 "분할된 키 캐시"[4]이다.이 기능이 활성화되면 MyISAM 인덱스의 캐시는 세그먼트로 나뉜다.이것은 스레드가 전체 캐시를 잠글 필요가 거의 없기 때문에 동시성을 향상시킨다.
마리아DB에서 MyISAM은 가상 칼럼도 지원한다.
이슬비는 MyISAM을 포함하지 않는다.
참고 항목
메모들
- ^ "MySQL 5.5 Reference Manual :: 13 Storage Engines :: 13.6 The InnoDB Storage Engine". 2009-05-10. Archived from the original on 2010-11-20. Retrieved 2021-03-16.
- ^ "MySQL Performance: InnoDB vs MyISAM in 5.6". 2012-11-16. Retrieved 2021-03-16.
- ^ "Aria FAQ". MariaDB. 2010-08-15. Retrieved 2021-03-16.
- ^ "Segmented Key Cache". MariaDB. 2010-08-17. Retrieved 2021-03-16.
외부 링크
- MyISAM 스토리지 엔진의 MySQL 설명서
- MyISAM의 열린 파일 제한 및 테이블 캐시 문제 설명
- MyISAM 사용 시 발생할 문제에 대한 기사
- MySQL 엔진 - MyISAM vs Innodb by Rackspace(2015-02-08년 자료 보관)
- MyISAM에서 InnoDB로 MySQL 데이터베이스를 변환하고 동시에 Drupal 7을 준비하십시오(2013-03-08년 자료 보관).
- MyISAM에서 InnoDB로 테이블 변환