DBMS/MySQL

[DBMS] MySQL(1) - 개요

vincent77 2025. 9. 12. 15:25

RDBMS와 MySQL의 특징

RDBMS

  • Relational Database Management System
  • 모든 데이터를 2차원 테이블 형태로 표현하는 RDB를 관리하는 소프트웨어
  • 정규화를 통해 데이터의 중복성을 최소화하여 트랜잭션을 수행

MySQL 특징

기본 특징

  • 대표적인 오픈소스 RDBMS, SQL 표준을 대부분 따름
  • 오픈소스 기반 : GNU GPL(일부는 상업 라이선스)로 배포되어 자유롭게 사용 가능, 커스터마이징 가능
  • 다중 플랫폼 지원 : Linux, Windows, macOS 등
  • 다양한 스토리지 엔진 지원
  • 트랜잭션 및 ACID 지원

기술적 특징

  • Replication 지원
    • Master-Slave, Master-Master 구조로 데이터 복제를 구성할 수 있어 고가용성 및 분산 처리 가능
  • Partitioning : 대용량 데이터를 물리적으로 분할하여 관리할 수 있음
  • 클러스터링 기능 : NDB 엔진을 통해 고가용성 및 수평 확장을 지원
  • 보안 기능 : 사용자 인증, 권한 관리, SSL 암호화, 플러그인 기반 인증 등이 가능
  • 다양한 개발 언어와 연동 : Python, Java, PHP, C/C++, Node.js 등 언어와 연동을 위한 드라이버 및 라이브러리 제공

운영 및 관리 특징

  • 유지 관리 용이 : 간편한 설치 , GUI 도구(MySQL Workbench) 및 CLI 도구 지원
  • 백업과 복구 기능 : mysqldump , mysqlhotcopy , xtrabackup 등을 통해 백업과 복구 가능
  • 확장성 및 성능 튜닝 : 인덱스, 쿼리 최적화, 캐시 설정 등을 통해 성능 향상 가능

MySQL 아키텍쳐

  • 크게 MySQL 클라이언트, 커넥터, SQL Layer, 스토리지 엔즌으로 구성됨
  • 클라이언트 : 애플리케이션이나 사용자가 쿼리를 보내는 부분
  • 커넥터 : 클라이언트와 MySQL 서버 간의 통신을 담당
  • 스토리지 엔진 : MySQL의 독특한 특징 중 하나, 실제로 데이터를 디스크에 저장하고 읽어오는 방식을 담당하는 플러그인 형태 모듈. 사용자는 테이블 생성 시 어떤 스토리지 엔진을 사용할지 선택할 수 있음
스토리지엔진  설명
InnoDB 기본 스토리지 엔진. 사용자 데이터를 보호하기 위한 커밋, 롤백 및 충돌 복구 기능을 갖춘 트랜잭션 안전(ACID 호환) 스토리지 엔진
다수의 사용자 동시접속과 대용량 데이터를 처리할 때 최대 퍼포먼스를 내도록 설계됨
일반 쿼리 I/O 줄이기 위해 클러스터형 인덱스에 사용자 데이터 저장
데이터 무결성을 유지하기 위해 FOREIGN KEY 참조 무결성 제약 조건 지원
행 단위 잠금 지원 → 트랜잭션 처리가 필요한 대용량 데이터에 유리
버퍼 풀 메모리 영역을 갖춰 모든 데이터를 메모리에 유지
풀텍스트 인덱스 미지원
MyISAM Non-Transactional-Safe 테이블 관리
전체 문장 검색, 고성능 스토리지 및 복구 기능 제공
항상 Row Count 가지고 있어 SELECT count (*) 명령에 응답빠르고 SELECT 도 빠른 속도 지원
풀텍스트 인덱스를 지원 → Read Only 기능이 많은 서비스에 효율적
row level locking 미지원 → SELECT, INSERT, UPDATE, DELETE시 해당 테이블 전체 locking → row 수 와 CRUD 속도 반비례
Memory 중요하지 않은 데이터를 빠르게 조회해야 하는 환경에서 빠른 액세스를 위해 모든 데이터를 RAM에 저장
범용적이고 내구성 있는 방법을 제공하는 다른 엔진들이 도입되어 사용량 감소 추세
CSV 테이블은 실제 쉼표로 구분된 값이 포함된 텍스트 파일
CSV 형식으로 데이터를 가져오거나 덤프하여 동일한 형식을 읽고 쓰는 스크립트 및 애플리케이션과 데이터 교환 가능
CSV 테이블은 인덱싱 되지 않아 일반 작업 중에는 InnoDB 테이블에 데이터를 유지하고 가져오기 또는 내보내기 단계에서는 CSV 테이블만 사용
ARCHIVE 거의 참조되지 않는 기록, 아카이브 또는 보안 감사 정보를 대량으로 저장하고 검색하기 위한 엔진
Blackhole Unix /dev/null 장치와 유사하게 데이터를 허용하지만 저장하지 않음. 쿼리는 항상 빈 집합을 반환
DML 문이 복제본 서버로 전송되지만 원본 서버가 자체 데이터 복사본을 유지하지 않는 복제 구성에서 사용
NDB NDBCLUSTER 라고도 함, 클러스터형 데이터베이스 엔진
대규모 분산 데이터 센트에 대한 빠른 키-값 조회를 제공
최고 수준의 가동시간과 가용성이 필요한 애플리케이션에 특히 적합
Merge MySQL DBA 또는 개발자가 일련의 동일한 MyISAM 테이블을 논리적으로 그룹화하고 이를 하나의 개체로 참조할 수 있음
데이터 웨어하우징과 같은 VLDB 환경에 적합
Federated 별도의 MySQL 서버를 연결하여 여러 물리적 서버에서 하나의 논리적 데이터베이스를 생성하는 기능을 제공
분산 또는 데이터 마트 환경에 매우 적합

MySQL Edition 차이

구분 Community Edition Commercial Edition
가격 무료 유료
라이선스 GPL Oracle
기능 기본 기능 제공 클러스터링, 고가용성, 확장성 등 기능 추가
기술지원 커뮤티티 지원 오라클 공식 지원
대규모 시스템 지원 지원 가능 고가용성, 확장성 등 대규모 시스템에 적합
보안 데이터 암호화 등 기본 보안 기능 제공 더 많은 보안기능 제공