[DB] Internal

Jimin·2025년 4월 7일
0

[DB] 데이터베이스

목록 보기
16/16

InnoDB와 MyISAM의 차이점은 무엇인가요?

InnoDB

InnoDB는 트랜잭션, 외래 키 제약조건, MVCC를 지원하며 행 단위 락을 사용하여 데이터 무결성과 동시정을 보장한다.
(MVCC: 다중버전동시성제어)

  • MySQL의 기본엔진으로, 주로 데이터 무결성과 트랜잭션이 중요한 시스템에서 사용된다.

MyISAM

MyISAM은 트랜잭션과 외래 키를 지원하지 않고, 테이블 단위 락을 사용하지만, 읽기 작업에 최적화되어 있어 읽기 위주의 작업에 적합하다.

  • MySQL 초기버전에서 기본으로 사용된 엔진으로, 주로 성능 위주로 빠른 읽기 작업에 특화되어 있다.

MySQL 옵티마이저(Optimizer)의 역할은 무엇인가요?

MySQL 옵티마이저는 SQL 쿼리를 가장 효율적으로 실행할 수 있는 계획을 수립하는 역할을 한다.

인덱스 사용여부, 테이블 접근 방법, 조인 순서 등을 결정하여 최소 비용으로 쿼리를 실행할 수 있도록 최적의 실행 계획을 생성한다.

MVCC(Multi-Version Concurrency Control)란 무엇이며 어떤 장점이 있나요?

MVCC는 트랜잭션이 데이터를 읽고 쓰는 과정에서 동시성을 유지하기 위해 데이터의 여러 버전을 관리하는 기술이다.

MVCC를 통해 읽기 작업이 쓰기 작업을 차단하지 않아 동시성이 향상되고, 락 경합이 줄어 전체적인 성능이 개선된다.

MySQL에서 인덱스가 쿼리 성능에 어떤 영향을 미치나요?

인덱스는 데이터를 빠르게 찾을 수 있는 구조를 제공하여 Full Table Scan을 방지하고 쿼리 속도를 향상시킨다.

적절한 인덱스 설계는 WHERE 조건, JOIN, ORDER BY, GROUP BY 등의 작업 성은을 개선하지만, 과도한 인덱스는 데이터 변경 작업의 오버헤드를 증가시킬 수 있다.

profile
https://github.com/Dingadung

0개의 댓글