[DB] 사용했던 데이터베이스에 대해서 설명해주세요.

Jimin·2025년 3월 13일
0

[DB] 데이터베이스

목록 보기
11/15
post-thumbnail

MySQL

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템으로, 다양한 운영체제에서 동작하며,
MySQL 서버는 MySQL 엔진과 스토리지 엔진으로 구성되어 있다.

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

  • MySQL 엔진은 클라이언트로부터 오는 SQL 요청 처리를 담당한다.
  • 스토리지 엔진은 실제 데이터를 디스크 스토리지에 저장하거나 조회하는 부분을 담당한다.

MySQL 엔진

  • SQL 인터페이스: DDL, DML, ..
  • SQL 파서: SQL 문법 오류 탐지
  • 쿼리 옵티마이저: 실행 계획을 최적화하여 효율적인 데이터 검색을 수행한다.
  • 캐시와 버퍼 기능 제공: 자주 사용되는 데이터를 메모리에 저장하여 쿼리 성능을 향상시킨다.

InnoDB

MySQL이 제공하는 스토리지 엔진이 다양하지만 그 중 유일하게 레코드 기반의 락(Lock)을 제공하며,
이를 통해 높은 동시성 처리가 가능한 특징이 있어 주로 쓰이는 스토리지 엔진이다.

InnoDB의 구조

  • 메모리 영역: InnoDB 버퍼 풀을 활용하여 데이터 및 인덱스를 캐싱하여 성능을 향상시킨다.
  • 디스크 영역: 데이터 파일 및 로그 파일이 저장되며, 데이터 변경 사항을 지속적으로 기록한다.

InnoDB의 특징

  • 클러스터형 인덱스:
    Primary Key 순서대로 디스크에 저장되며 그렇기 때문에 Range scan이 굉장히 빠르다.
  • MVCC(Multi-Version Concurrency Control):
    다중 트랜잭션 동시 수행 시, 일관성을 유지하기 위해 여러 버전의 데이터를 관리한다.
  • 자동 데드락 감지:
    트랜잭션 충돌이 발생하면 자동으로 데트락을 탐지하고 해결한다.
  • 자동 장애 복구:
    트랜잭션 로그를 기반으로 장애 발생 시, 자동으로 복구한다.

면접 답변

MySQL이 무엇인가요?

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 데이터의 저장 및 관리, 검색을 수행하는 데이터베이스 시스템입니다.
MySQL 서버는 크게 MySQL 엔진과 스토리지 엔진으로 구성됩니다.

MySQL 엔진: 클라이언트로부터 SQL 요청을 받아 처리하며, SQL 문법을 분석하고 최적의 실행 계획을 수립하여 데이터 검색을 수행합니다.
스토리지 엔진: 데이터를 디스크에 저장하고 관리하는 역할을 하며, 대표적으로 InnoDB와 MyISAM을 지원합니다.
MySQL은 쿼리 최적화, 캐싱, 트랜잭션 처리 등의 기능을 제공하며, 대규모 시스템에서도 높은 성능을 유지할 수 있도록 설계되었습니다.

InnoDB가 무엇인가요?

InnoDB는 MySQL에서 기본적으로 사용되는 스토리지 엔진으로, 트랜잭션을 지원하며 높은 동시성을 제공하는 특징이 있습니다.

InnoDB의 주요 특징은 다음과 같습니다.

클러스터형 인덱스(Clustered Index): Primary Key 순서대로 데이터를 저장하며, 이를 통해 범위 검색(Range Scan) 속도가 빠릅니다.
MVCC(Multi-Version Concurrency Control): 여러 트랜잭션이 동시에 수행될 때 데이터의 일관성을 유지하도록 여러 버전의 데이터를 관리합니다.
자동 데드락 감지: 트랜잭션 충돌이 발생할 경우 자동으로 데드락을 탐지하고 해결합니다.
자동 장애 복구: 트랜잭션 로그를 기반으로 장애 발생 시 자동으로 복구할 수 있습니다.
이러한 특징 덕분에 InnoDB는 안전한 데이터 저장 및 고성능 트랜잭션 처리가 필요한 시스템에서 널리 사용됩니다.

profile
https://github.com/Dingadung

0개의 댓글

관련 채용 정보