Loading...
MySQL 9.5 Reference Manual 9.5의 18.11.2 The Common Database Server Layer의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
MySQL 플러그형 스토리지 엔진은 MySQL 데이터베이스 서버 내에서 데이터베이스에 대한 실제 데이터 I/O 작업을 수행하고, 특정 애플리케이션 요구를 목표로 하는 특정 기능 집합을 활성화하고 강제하는 역할을 담당하는 구성 요소입니다. 특정 스토리지 엔진을 사용하는 주요 이점은, 특정 애플리케이션에 필요한 기능만 제공받게 되므로 데이터베이스의 시스템 오버헤드가 줄어들고, 그 최종 결과로 보다 효율적이고 더 높은 데이터베이스 성능을 얻을 수 있다는 점입니다.
이것은 MySQL이 항상 매우 높은 성능을 제공하는 것으로 알려져 있으며, 업계 표준 벤치마크에서 독점 모놀리식 데이터베이스와 대등하거나 능가하는 이유 중 하나입니다.
기술적인 관점에서 볼 때, 스토리지 엔진 안에 있는 고유한 지원 인프라 구성 요소에는 어떤 것들이 있을까요? 주요 기능 차별화 요소에는 다음이 포함됩니다:
Concurrency: 일부 애플리케이션은 다른 것보다 더 세밀한 잠금 요구 사항(예: 행 단위 잠금)을 가집니다. 올바른 잠금 전략을 선택하면 오버헤드를 줄이고 전체 성능을 향상시킬 수 있습니다. 이 영역에는 다중 버전 동시성 제어나 “스냅샷” 읽기와 같은 기능에 대한 지원도 포함됩니다.
Transaction Support: 모든 애플리케이션이 트랜잭션을 필요로 하는 것은 아니지만, 트랜잭션이 필요한 경우 ACID 준수 등과 같이 매우 잘 정의된 요구 사항이 존재합니다.
Referential Integrity: 서버가 DDL로 정의된 외래 키를 통해 관계형 데이터베이스 참조 무결성을 강제해야 할 필요가 있는 경우입니다.
Physical Storage: 이는 테이블과 인덱스에 대한 전체적인 페이지 크기부터, 데이터를 물리 디스크에 저장하는 데 사용되는 형식까지 모든 것을 포함합니다.
Index Support: 서로 다른 애플리케이션 시나리오는 서로 다른 인덱스 전략에서 이득을 얻는 경향이 있습니다. 각 스토리지 엔진은 일반적으로 자체적인 인덱싱 방식을 가지지만, 일부(B-tree 인덱스 등)는 거의 모든 엔진에 공통적입니다.
Memory Caches: 서로 다른 애플리케이션은 어떤 메모리 캐싱 전략에 더 잘 반응하기 때문에, 일부 메모리 캐시(예: 사용자 연결에 사용되는 것)는 모든 스토리지 엔진에 공통이지만, 다른 것들은 특정 스토리지 엔진이 실제로 사용될 때에만 고유하게 정의됩니다.
Performance Aids: 여기에 포함되는 것은 병렬 작업을 위한 다중 I/O 스레드, 스레드 동시성, 데이터베이스 체크포인팅, 대량 삽입 처리 등입니다.
Miscellaneous Target Features: 여기에는 지리 공간 연산 지원, 특정 데이터 조작 연산에 대한 보안 제한, 기타 유사한 기능 등이 포함될 수 있습니다.
각 플러그형 스토리지 엔진 인프라 구성 요소 집합은 특정 애플리케이션을 위한 선택적인 이점 집합을 제공하도록 설계됩니다. 반대로, 특정 구성 요소 기능 집합을 사용하지 않으면 불필요한 오버헤드를 줄이는 데 도움이 됩니다.
특정 애플리케이션의 요구 사항 집합을 이해하고 적절한 MySQL 스토리지 엔진을 선택하는 것이 전체 시스템 효율성과 성능에 극적인 영향을 미칠 수 있다는 것은 당연한 이치입니다.
18.11.1 Pluggable Storage Engine Architecture
19 Replication