본문 바로가기
MySQL

MySQL 8.0 strage engine

by 타마마임팩트_쫀 2021. 7. 21.

MySQL 8.0 지원 스토리지 엔진

  • InnoDB: MySQL 8.0의 기본 스토리지 엔진입니다. InnoDB사용자 데이터를 보호하기위한 커밋, 롤백 및 크래시 복구 기능이있는 MySQL 용 트랜잭션 안전 (ACID 호환) 스토리지 엔진입니다. InnoDB행 수준 잠금 및 Oracle 스타일의 일관된 비 잠금 읽기는 다중 사용자 동시성과 성능을 향상시킵니다. InnoDB사용자 데이터를 클러스터형 인덱스에 저장하여 기본 키를 기반으로하는 일반적인 쿼리에 대한 I / O를 줄입니다. 데이터 무결성을 유지하기 위해 FOREIGN KEY 참조 무결성 제약 조건도 지원합니다.
  • MyISAM:이 테이블은 설치 공간이 작습니다. 테이블 수준 잠금 은 읽기 / 쓰기 워크로드의 성능을 제한하므로 웹 및 데이터웨어 하우징 구성의 읽기 전용 또는 대부분의 읽기 워크로드에서 자주 사용됩니다.
  • Memory: 중요하지 않은 데이터의 빠른 조회가 필요한 환경에서 빠른 액세스를 위해 모든 데이터를 RAM에 저장합니다. 이 엔진은 HEAP 엔진으로 알려졌습니다. InnoDB버퍼 풀 메모리 영역은 대부분 또는 모든 데이터를 메모리에 보관하는 범용적인 방법을 제공하고  NDBCLUSTER는 방대한 분산 데이터 세트에 대한 빠른 키-값 조회를 제공합니다.
  • CSV: 테이블은 실제로 쉼표로 구분 된 값이있는 텍스트 파일입니다. CSV 테이블을 사용하면 CSV 형식으로 데이터를 가져 오거나 덤프하여 동일한 형식을 읽고 쓰는 스크립트 및 응용 프로그램과 데이터를 교환 할 수 있습니다. CSV 테이블은 index가 생성되지 않기 때문에 일반적으로 InnoDB정상 작업 중에 데이터를 테이블에 보관 하고 가져 오기 또는 내보내기 단계 중에 만 CSV 테이블을 사용합니다.
  • Archive: 인덱스 화되지 않은 압축 테이블은 참조되지 않는 많은 양의 기록을 보관 또는 보안 감사 정보를 저장하고 검색하기위한 것입니다.
  • Blackhole: Blackhole 스토리지 엔진은 Unix /dev/null장치 와 마찬가지로 데이터를 허용하지만 저장하지 않습니다 . 쿼리는 항상 빈 집합을 반환합니다. 이러한 테이블은 DML 문이 복제본 서버로 전송되지만 원본 서버가 자체 데이터 복사본을 유지하지 않는 복제 구성에서 사용할 수 있습니다.
  • NDB(NDBCLUSTER) :이 클러스터 된 데이터베이스 엔진은 가능한 최고 수준의 가용성이 필요한 애플리케이션에 특히 적합합니다.
  • Merge: MySQL DBA 또는 개발자가 일련의 동일한 MyISAM테이블 을 논리적으로 그룹화하고 하나의 개체로 참조 할 수 있습니다. 데이터웨어 하우징과 같은 VLDB 환경에 적합합니다.
  • Federated: 별도의 MySQL 서버를 연결하여 여러 물리적 서버에서 하나의 논리적 데이터베이스를 생성하는 기능을 제공합니다. 분산 또는 데이터 마트 환경에 매우 적합합니다.
  • Example:이 엔진은 새 스토리지 엔진 작성을 시작하는 방법을 보여주는 MySQL 소스 코드의 예입니다. 스토리지 엔진은 아무 작업도 수행하지 않는 " stub" 입니다. 이 엔진으로 테이블을 생성 할 수 있지만 테이블에 데이터를 저장하거나 검색 할 수 없습니다.

전체 서버 또는 스키마에 대해 동일한 스토리지 엔진을 사용하도록 제한되지 않습니다. 모든 테이블에 대해 스토리지 엔진을 지정할 수 있습니다. 예를 들어, 애플리케이션은 데이터를 스프레드 시트로 내보내기위한 InnoDB하나의 CSV테이블과 MEMORY임시 작업 공간을위한 몇 개의 테이블이 있는 대부분의 테이블을 사용할 수 있습니다 .

 

스토리지 엔진 선택

MySQL과 함께 제공되는 다양한 스토리지 엔진은 다양한 사용 사례를 염두에두고 설계되었습니다. 다음 표는 MySQL과 함께 제공되는 일부 스토리지 엔진에 대한 개요를 제공하며 표 다음에 나오는 설명을 명확히합니다.

참고:
1. 스토리지 엔진이 아닌 서버에서 구현됩니다.
2. 압축 된 MyISAM 테이블은 압축 된 행 형식을 사용할 때만 지원됩니다. MyISAM에서 압축 된 행 형식을 사용하는 테이블은 읽기 전용입니다.
3. 암호화 기능을 통해 서버에서 구현됩니다.
4. 암호화 기능을 통해 서버에서 구현됩니다. MySQL 5.7 이상에서는 미사용 데이터 테이블 스페이스 암호화가 지원됩니다.
5. 외래 키에 대한 지원은 MySQL Cluster NDB 7.3 이상에서 사용할 수 있습니다.
6. FULLTEXT 인덱스에 대한 InnoDB 지원은 MySQL 5.6 이상에서 사용할 수 있습니다.
7. 지리 공간 인덱싱에 대한 InnoDB 지원은 MySQL 5.7 이상에서 사용할 수 있습니다.
8. InnoDB는 Adaptive Hash Index 기능을 위해 내부적으로 해시 인덱스를 사용합니다.