작성자: Limeinan
MySQL 플러그인 스토리지 엔진은 데이터베이스에 대한 실제 데이터 I/O 작업 수행을 담당하는 MySQL 데이터베이스 서버의 구성 요소이며, 특별한 애플리케이션 요구에 맞는 특정 기능 세트를 허용하고 적용할 수 있습니다. 특별한 스토리지 엔진을 사용하는 주요 장점 중 하나는 특정 애플리케이션에 필요한 기능만 제공하므로 데이터베이스에 대한 시스템 오버헤드가 적고 최종 결과는 더 효율적이고 데이터베이스 성능이 높다는 것입니다. 이것이 바로 MySQL이 업계 표준 벤치마크에서 독점 모놀리식 데이터베이스와 일치하거나 이를 능가하는 고성능으로 지속적으로 평가되는 이유 중 하나입니다.
기술적 관점에서 기본 구조를 지원하는 스토리지 엔진의 고유한 구성 요소에는 어떤 것이 있습니까? 몇 가지 주요 차이점은 다음과 같습니다.
· 동시성: 일부 응용 프로그램에는 다른 응용 프로그램보다 더 세부적인 수준의 잠금 요구 사항(예: 행 수준 잠금)이 있습니다. 올바른 잠금 전략을 선택하면 오버헤드가 줄어들고 전반적인 성능이 향상되는 데 도움이 됩니다. 또한 다중 버전 동시성 제어 또는 "스냅샷" 읽기와 같은 기능에 대한 지원도 포함됩니다.
·트랜잭션 지원: 모든 애플리케이션에 트랜잭션이 필요한 것은 아니지만 트랜잭션이 필요한 애플리케이션의 경우 ACID 호환성과 같이 잘 정의된 요구 사항이 있습니다.
·참조 무결성: DDDL에 정의된 외래 키를 통해 서버는 연결된 데이터베이스의 참조 무결성을 강화해야 합니다.
· 물리적 저장소: 테이블과 인덱스의 전체 페이지 크기부터 데이터를 저장하는 데 필요한 형식, 물리적 디스크에 이르기까지 다양한 것들이 포함됩니다.
·인덱스 지원: 다양한 애플리케이션은 서로 다른 인덱싱 전략을 채택하는 경향이 있습니다. 각 스토리지 엔진에는 일반적으로 자체 인덱싱 방법이 있지만 일부 인덱싱 방법(예: B-트리 인덱스)은 거의 모든 스토리지 엔진에 공통됩니다.
메모리 캐싱: 다양한 애플리케이션이 다른 애플리케이션보다 특정 메모리 캐싱 전략에 더 잘 반응하므로 일부 메모리 캐싱은 모든 스토리지 엔진(예: 사용자 Connection의 캐시, MySQL의 고속 쿼리 캐시 등)에 공통적으로 적용되지만 다른 캐싱 전략은 정의된 것뿐입니다. 특별한 스토리지 엔진을 사용할 때 고유하게 발생합니다.
·성능 지원: 병렬 작업을 위한 다중 I/O 스레드, 스레드 동시성, 데이터베이스 체크포인트, 일괄 삽입 처리 등을 포함합니다.
·기타 대상 기능: 지리공간 작업 지원, 특정 데이터 처리 작업에 대한 보안 제한 등이 포함될 수 있습니다.
플러그인 스토리지 엔진 기본 구성 요소의 각 세트는 특정 애플리케이션에 대해 선택 가능한 기능 세트를 제공하도록 설계되었습니다. 반대로 구성 요소 속성 컬렉션을 피하면 불필요한 오버헤드를 피하는 데 도움이 됩니다. 따라서 특정 애플리케이션의 요구 사항 세트를 이해하고 시스템의 전반적인 효율성과 성능을 크게 향상시킬 수 있는 적절한 MySQL 스토리지 엔진을 선택해야 한다는 것은 분명합니다.