[데이터베이스] MySQL 및 InnoDB

조수훈·2023년 9월 14일
0

DataBase

목록 보기
6/11
post-thumbnail

MySQL

MySQL은 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS: Relational DBMS)으로 오픈 소스이며, 다양한 운영체제에서 사용할 수 있습니다.

MySQL서버 = MySQL엔진 + 스토리지엔진

MySQL 서버는 크게 MySQL 엔진과 스토리지 엔진으로 나눠볼 수 있습니다.
MySQL 엔진은 데이터베이스 시스템 전체를 관리하고 데이터베이스에 엑세스 할 수 있는 인터페이스 및 기능을 제공합니다. 데이터베이스의 생성, 연결, 쿼리 처리, 사용자 권한 관리, 보안 및 백업과 같은 작업을 수행합니다.
데이터베이스 관리 시스템의 핵심 역할을 담당하며, 스토리지엔진을 사용하여 데이터를 관리합니다.
스토리지 엔진은 데이터베이스 관리 시스템에서 데이터를 디스크에 어떻게 저장하고 관리할지를 결정하는 구성 요소입니다. 데이터를 테이블에 저장하고 인덱스를 관리하는 방법을 정의합니다.

InnoDB

InnoDB 는 MySQL 에서 가장 일반적으로 사용되는 스토리지 엔진 중 하나입니다.
트랜잭션 지원, 데이터 무결성, 고성능 및 안정성을 제공하는데 매우 효과적입니다.
1. 트랜잭션 지원
InnoDB 엔진은 트랜잭션 지원을 제공하여 데이터베이스에서 ACID (원자성, 일관성, 고립성, 지속성) 트랜잭션을 보장합니다. 이는 데이터의 무결성과 일관성을 유지하는 데 중요합니다.
2. 외래 키 지원
외래 키 제약 조건을 사용하여 데이터 무결성을 강화할 수 있습니다. 이를 통해 데이터베이스 간의 관계를 정의하고 유지할 수 있습니다.
3. 로우 레벨 락
InnoDB는 로우 레벨에서 락을 사용하므로 동시성을 향상시킵니다. 다수의 클라이언트가 데이터베이스를 동시에 액세스할 때 충돌을 최소화하고 성능을 향상시킵니다.
4. 자동 복구
장애 상황에서 데이터의 일관성을 보장하기 위해 InnoDB는 자동 복구 기능을 제공합니다. 데이터베이스가 예기치 않게 종료되는 경우 데이터베이스를 복구하여 데이터 손실을 방지합니다.
5. 클러스터형 인덱스
InnoDB는 클러스터형 인덱스를 사용하여 테이블 데이터를 저장하는 데 사용됩니다. 이로써 데이터베이스에서 레코드의 물리적 순서를 제어하고 쿼리 성능을 최적화할 수 있습니다.
6. 높은 병렬 처리 및 스레드 관리
InnoDB 엔진은 다중 스레딩을 지원하여 다수의 동시 사용자 요청을 처리합니다. 이로 인해 높은 동시성과 성능이 가능해집니다.
7. 자동 확장
InnoDB는 데이터베이스 파일의 크기를 자동으로 확장하고 축소하는 데 도움을 줍니다.

profile
잊지 않기 위해 기록하기

0개의 댓글