14.2.1 MySQL 과 ACID 모델
ACID 모델은 비즈니스 데이터 및 미션 크리티컬 애플리케이션에서 중요하다 신뢰성 측면이 강조된 데이터베이스 설계 원칙의 집합입니다. 소프트웨어 충돌이나 하드웨어 고장 등의 예외적 인 상황에서도 데이터가 손상하지 않고 결과가 왜곡되지 않도록 MySQL은 ACID 모델을 엄격하게 준수하는 InnoDB
스토리지 엔진 등의 구성 요소가 포함되어 있습니다 합니다. ACID에 준거 한 기능에 의존하고 있으면 일관성 검사와 응급 복구 메커니즘을 재개발 할 필요가 없습니다.
추가 소프트웨어 보호 수단 신뢰성이 최고의 하드웨어 또는 소량의 데이터 손실이나 불일치에 견딜 수있는 응용 프로그램이 포함 된
경우는 ACID의 신뢰성 부분에 대한 대가로 성능과 처리량 이 향상되도록 MySQL의 설정을 조정할 수 있습니다.
다음 섹션에서는 어떻게 MySQL의 기능 (특히 InnoDB
스토리지 엔진)가 ACID 모델의 카테고리와 상호 작용하는 방법에 대해 설명합니다.
A : 자성.
C : 일관성.
I : 격리.
D : 지속성.
원 자성
ACID 모델의 원자 성의 측면에서 주로 InnoDB
의 트랜잭션 에 참여하고 있습니다. 관련 MySQL의 기능은 다음과 같습니다.
자동 커밋 설정.
COMMIT
문.ROLLBACK
문.INFORMATION_SCHEMA
테이블의 운용 데이터입니다.
일관성
ACID 모델의 일관성 측면에서 주로 충돌로부터 데이터를 보호하기위한 내부적 인 InnoDB
처리가 참여하고 있습니다. 관련 MySQL의 기능은 다음과 같습니다.
InnoDB
이중 쓰기 버퍼 .InnoDB
크래시 복구 .
격리
ACID 모델의 분리 성 측면에서 주로 InnoDB
의 트랜잭션 (특히 각 트랜잭션에 적용되는 격리 수준 )이 참여하고 있습니다. 관련 MySQL의 기능은 다음과 같습니다.
자동 커밋 설정.
SET ISOLATION LEVEL
문.InnoDB
잠금 낮은 수준의 세부 정보입니다. 이러한 정보는 성능 튜닝시에INFORMATION_SCHEMA
테이블에서 참조합니다.
지속성
ACID 모델의 지속성 측면에는 특정 하드웨어 구성과 상호 작용하는 MySQL 소프트웨어의 기능이 관여하고 있습니다. CPU, 네트워크 및 저장 장치의 성능에 따라 많은 가능성을 생각할 수 있기 때문에 구체적인 지침을 제공 할 때는이 부분이 가장 복잡합니다. (이러한 지침을 따르는 것은 "새로운 하드웨어 '를 구매하는 형태가 될 수 있습니다.) 관련 MySQL의 기능은 다음과 같습니다.
innodb_doublewrite
구성 옵션을 켜거나 전환이 가능한InnoDB
의 이중 쓰기 버퍼 .innodb_flush_log_at_trx_commit
구성 옵션.sync_binlog
구성 옵션.innodb_file_per_table
구성 옵션.저장 장치의 쓰기 버퍼 (디스크 드라이브, SSD RAID 어레이 등).
저장 장치의 배터리 백업 캐시.
MySQL을 실행하는 데 사용되는 운영 체제 (특히
fsync()
시스템 호출로 지원).MySQL 서버를 실행하고 MySQL 데이터를 저장하는 모든 컴퓨터 서버 및 저장 장치에 전력을 보호하는 무정전 전원 공급 장치 (UPS).
백업 정책 (빈도, 백업 유형, 백업 저장 기간 등).
분산 또는 호스트 데이터 애플리케이션의 경우, MySQL 서버의 하드웨어가 배치되어있는 데이터 센터 및 데이터 센터 간의 네트워크 연결의 특정 특성.