Loading...
MySQL 9.5 Reference Manual 9.5의 17.1.1 Benefits of Using InnoDB Tables의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
InnoDB 테이블은 다음과 같은 이점이 있습니다:
서버가 하드웨어나 소프트웨어 문제로 인해 예기치 않게 종료되더라도, 그 시점에 데이터베이스에서 어떤 일이 진행 중이었는지와 관계없이, 데이터베이스를 다시 시작한 후 특별히 수행해야 할 작업이 없습니다. InnoDB 크래시 복구는 크래시 시점 이전에 커밋된 변경 사항은 자동으로 완료하고, 진행 중이었지만 커밋되지 않은 변경 사항은 되돌려서, 중단했던 시점부터 다시 시작하여 계속할 수 있도록 합니다. Section 17.18.2, “InnoDB Recovery”를 참조하십시오.
InnoDB 스토리지 엔진은 자체 버퍼 풀을 유지하여, 데이터에 접근할 때 테이블과 인덱스 데이터를 주 메모리에 캐시합니다. 자주 사용되는 데이터는 메모리에서 직접 처리됩니다. 이 캐시는 여러 유형의 정보에 적용되어 처리를 가속화합니다. 전용 데이터베이스 서버에서는 물리 메모리의 최대 80%까지 버퍼 풀에 할당되는 경우가 많습니다. Section 17.5.1, “Buffer Pool”를 참조하십시오.
관련 데이터를 서로 다른 테이블로 나누는 경우, 참조 무결성을 보장하는 외래 키를 설정할 수 있습니다. Section 15.1.24.5, “FOREIGN KEY Constraints”를 참조하십시오.
디스크나 메모리에서 데이터가 손상되는 경우, 체크섬 메커니즘이 해당 데이터를 사용하기 전에 잘못된 데이터임을 경고합니다. innodb_checksum_algorithm 변수는 InnoDB에서 사용하는 체크섬 알고리즘을 정의합니다.
각 테이블에 대해 적절한 프라이머리 키 컬럼을 사용하여 데이터베이스를 설계하면, 해당 컬럼과 관련된 작업이 자동으로 최적화됩니다. WHERE 절, ORDER BY 절, GROUP BY 절, 조인 연산에서 프라이머리 키 컬럼을 참조하는 것은 매우 빠릅니다. Section 17.6.2.1, “Clustered and Secondary Indexes”를 참조하십시오.
insert, update, delete는 체인지 버퍼링이라 불리는 자동 메커니즘에 의해 최적화됩니다. InnoDB는 동일한 테이블에 대해 동시 읽기 및 쓰기 액세스를 허용할 뿐 아니라, 변경된 데이터를 캐시하여 디스크 I/O를 단순화합니다. Section 17.5.2, “Change Buffer”를 참조하십시오.
성능상의 이점은 장기 실행 쿼리가 있는 대형 테이블에만 국한되지 않습니다. 동일한 행이 테이블에서 반복적으로 액세스되는 경우, 어댑티브 해시 인덱스가 개입하여 조회를 해시 테이블에서 나온 것처럼 더 빠르게 수행합니다. Section 17.5.3, “Adaptive Hash Index”를 참조하십시오.
테이블과 관련 인덱스를 압축할 수 있습니다. Section 17.9, “InnoDB Table and Page Compression”를 참조하십시오.
데이터를 암호화할 수 있습니다. Section 17.13, “InnoDB Data-at-Rest Encryption”를 참조하십시오.
인덱스 생성 및 삭제와 같은 DDL 작업을, 성능과 가용성에 미치는 영향을 훨씬 줄인 상태에서 수행할 수 있습니다. Section 17.12.1, “Online DDL Operations”를 참조하십시오.
파일 단위 테이블 테이블스페이스를 잘라내는 작업은 매우 빠르며, 디스크 공간을 InnoDB만이 아니라 운영 체제가 재사용할 수 있도록 해제할 수 있습니다. Section 17.6.3.2, “File-Per-Table Tablespaces”를 참조하십시오.
DYNAMIC 행 포맷을 사용하면, BLOB 및 긴 텍스트 필드에 대해 테이블 데이터의 저장 레이아웃이 더 효율적입니다. Section 17.10, “InnoDB Row Formats”를 참조하십시오.
INFORMATION_SCHEMA 테이블을 쿼리하여 스토리지 엔진의 내부 동작을 모니터링할 수 있습니다. Section 17.15, “InnoDB INFORMATION_SCHEMA Tables”를 참조하십시오.
Performance Schema 테이블을 쿼리하여 스토리지 엔진의 성능 세부 정보를 모니터링할 수 있습니다. Section 17.16, “InnoDB Integration with MySQL Performance Schema”를 참조하십시오.
동일한 문장 내에서도, InnoDB 테이블과 다른 MySQL 스토리지 엔진의 테이블을 혼용할 수 있습니다. 예를 들어, 하나의 쿼리에서 InnoDB 테이블과 MEMORY 테이블의 데이터를 결합하기 위해 조인 연산을 사용할 수 있습니다.
InnoDB는 대량의 데이터를 처리할 때 CPU 효율성과 최대 성능을 제공하도록 설계되었습니다.
InnoDB 테이블은 파일 크기가 2GB로 제한된 운영 체제에서도 대용량의 데이터를 처리할 수 있습니다.
MySQL 서버와 애플리케이션 코드에 적용할 수 있는 InnoDB 전용 튜닝 기법은 Section 10.5, “Optimizing for InnoDB Tables”를 참조하십시오.
17.1 Introduction to InnoDB
17.1.2 Best Practices for InnoDB Tables