# 15. InnoDB 스토리지 엔진 - 작업중
원본 - https://dev.mysql.com/doc/refman/8.0/en/innodb-storage-engine.html
# 15.1 InnoDB 입문
InnoDB는 높은 신뢰성과 높은 성능의 균형을 이루는 범용 스토리지 엔진입니다. MySQL 8.0에서는 InnoDB기본 MySQL 스토리지 엔진입니다. 다른 기본 스토리지 엔진을 구성하지 않는 한 ENGINE=절을 지정하지 않고 CREATE TABLE명령문을 발행하면 InnoDB테이블이 작성됩니다.
### InnoDB의 주요 이점
- 그것 의 [DML](https://dev.mysql.com/doc/refman/8.0/en/glossary.html#glos_dml "DML") 작업 은 [트랜잭션](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html#glos_transaction "거래") 에서 사용자 데이터 를 보호 하기 위해 [커밋](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html#glos_commit "커밋") , [롤백](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html#glos_rollback "롤백") 및 [크래시 복구](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html#glos_crash_recovery "크래시 복구") 기능 이 있는 [ACID](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html#glos_acid "ACID") 모델 을 따릅니다 . 자세한 내용은 [섹션 15.2, InnoDB 및 ACID 모델](https://dev.mysql.com/doc/refman/8.0/ja/mysql-acid.html "15.2 InnoDB 및 ACID 모델") 을 참조하십시오.
- 행 수준 [잠금](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html#glos_locking "자물쇠") 과 Oracle 스타일 [일관성 읽기](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html#glos_consistent_read "일관성 읽기") 를 사용하면 여러 사용자의 병렬성과 성능이 향상됩니다. 자세한 내용은 [섹션 15.7, InnoDB 잠금 및 트랜잭션 모델](https://dev.mysql.com/doc/refman/8.0/ja/innodb-locking-transaction-model.html "15.7 InnoDB 잠금 및 트랜잭션 모델") 을 참조하십시오.
- `InnoDB`테이블은 [기본 키](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html#glos_primary_key "기본 키") 를 기반으로 쿼리가 최적화되도록 디스크의 데이터를 정렬합니다. 각 `InnoDB`테이블에는 기본 키 검색을 위한 I/O를 최소화하기 위해 데이터를 구성하는 [clustered index](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html#glos_clustered_index "클러스터된 인덱스") 라는 기본 키 인덱스가 있습니다. 자세한 내용은 [섹션 15.6.2.1, "클러스터 및 보조 인덱스"](https://dev.mysql.com/doc/refman/8.0/ja/innodb-index-types.html "15.6.2.1 클러스터 및 보조 인덱스") 를 참조하십시오.
- 데이터 [무결성](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html#glos_referential_integrity "참조 무결성") 을 유지하기 위하여는, 제약이 지원됩니다. 외래 키는 삽입, 갱신 및 삭제를 점검하고 다른 테이블간에 불일치가 발생하지 않는지 확인합니다. 자세한 내용은 [13.1.20.5 절. "FOREIGN KEY 제약"](https://dev.mysql.com/doc/refman/8.0/ja/create-table-foreign-keys.html "13.1.20.5 FOREIGN KEY 제약") 을 참조하십시오. `InnoDB`[`FOREIGN KEY`](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html#glos_foreign_key "외래 키")
표 15.1 InnoDB 스토리지 엔진 기능
기능 | 지원 |
---|
**B 트리 인덱스** | 예 |
**MVCC** | 예 |
**T 트리 인덱스** | 아니오 |
**인덱스 캐시** | 예 |
**클러스터 데이터베이스 지원** | 아니오 |
**클러스터된 인덱스** | 예 |
**스토리지 제한** | 64TB |
**데이터 캐시** | 예 |
**데이터 사전용 업데이트 통계** | 예 |
**거래** | 예 |
**해시 인덱스** | 아니오 (InnoDB는 적응형 해시 인덱스 기능에 대해 내부적으로 해시 인덱스를 사용합니다.) |
**백업/포인트 인 타임 복구** (스토리지 엔진이 아닌 서버 내에서 구현됨) | 예 |
**복제 지원** (스토리지 엔진이 아닌 서버 내에서 구현됨) | 예 |
**록 입도** | 행 |
**전체 텍스트 검색 색인** | 예 (FULLTEXT 인덱스에 대한 InnoDB 지원은 MySQL 5.6 이상에서 사용할 수 있습니다.) |
**압축 데이터** | 예 |
**지리 공간 지수 지원** | 예 (InnoDB에서 지리 공간 인덱싱 지원은 MySQL 5.7 이상에서 사용할 수 있습니다.) |
**지리 공간 데이터 유형 지원** | 예 |
**외래 키 지원** | 예 |
**암호화 데이터** | 예 (암호화 기능을 통해 서버에 구현됩니다. MySQL 5.7 이상에서는 저장된 데이터의 테이블 공간 암호화가 지원됩니다.) |
InnoDB의 기능과 MySQL 로 제공되고 있는 그 외의 스토리지 엔진을 비교하는 방법에 대해서는, [제 16 장 「*대체 스토리지 엔진*」](https://dev.mysql.com/doc/refman/8.0/ja/storage-engines.html "16장 대체 스토리지 엔진") 의 *「스토리지 엔진의 기능」* 표를 참조해 주세요.
### InnoDB 확장 및 새로운 기능
InnoDB 확장 및 새로운 기능에 대한 자세한 내용은 다음을 참조하십시오.
- [섹션 1.3, "MySQL 8.0의 새로운 기능"](https://dev.mysql.com/doc/refman/8.0/ja/mysql-nutshell.html "1.3 MySQL 8.0의 새로운 기능")의 InnoDB확장 기능 목록.
- ["릴리즈 노트"](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/) .
### 추가 InnoDB 정보 및 리소스
- `InnoDB`관련 용어 및 정의에 대해서는 [MySQL 용어집](https://dev.mysql.com/doc/refman/8.0/ja/glossary.html "MySQL 용어집") 을 참조하십시오.
- `InnoDB`스토리지 엔진 전용 포럼에 대해서는 [MySQL Forums::InnoDB](http://forums.mysql.com/list.php?22) 를 참조하십시오.
- `InnoDB`는 MySQL과 동일한 GNU GPL 라이센스 버전 2(1991년 6월)에서 발행되었습니다. MySQL 라이센스에 대한 자세한 내용은 [http://www.mysql.com/company/legal/licensing/](http://www.mysql.com/company/legal/licensing/) 을 참조하십시오.
# 15.2 InnoDB and the ACID Model
# 15.3 InnoDB Multi-Versioning
# 15.4 InnoDB Architecture
# 15.5 InnoDB In-Memory Structures
# 15.6 InnoDB On-Disk Structures
# 15.7 InnoDB Locking and Transaction Model
# 15.8 InnoDB Configuration
# 15.9 InnoDB Table and Page Compression
# 15.10 InnoDB Row Formats
# 15.11 InnoDB Disk I/O and File Space Management
# 15.12 InnoDB and Online DDL
# 15.13 InnoDB Data-at-Rest Encryption
# 15.14 InnoDB Startup Options and System Variables
# 15.15 InnoDB INFORMATION_SCHEMA Tables
# 15.16 InnoDB Integration with MySQL Performance Schema
# 15.17 InnoDB Monitors15.17 InnoDB Monitors
# 15.18 InnoDB Backup and Recovery
# 15.19 InnoDB and MySQL Replication
# 15.20 InnoDB memcached Plugin
# 15.21 InnoDB Troubleshooting
# 15.22 InnoDB Limits
# 15.23 InnoDB Restrictions and Limitations