MySQL이란?
MySQL은 오라클이 개발 및 지원하는 세계에서 가장 인기 있는 오픈 소스 SQL 데이터베이스 관리 시스템(DBMS)입니다.
- DBMS(Database Management System): 데이터를 추가, 조회, 갱신, 삭제(CRUD)할 수 있도록 지원하는 소프트웨어
- RDBMS(Relational DBMS): 데이터를 테이블 단위로 분리 저장하고, 테이블 간 관계를 설정하는 시스템
- SQL(Structured Query Language): 데이터베이스를 조작하는 표준 질의 언어
- 오픈 소스: 무료 사용 및 소스 코드 수정 가능(GPL 라이선스)
MySQL 주요 특징
1. 관계형 데이터베이스
- 데이터를 테이블로 구분해 저장
- 테이블 간 1:1, 1:N, M:N 관계 설정 가능
- 제약조건(Primary Key, Foreign Key, Unique 등)을 통해 데이터 무결성 보장
2. 표준 SQL 지원
- ANSI/ISO SQL 표준 기반
- 다양한 SQL 문법과 확장 기능 지원
3. 높은 성능과 확장성
- 단일 서버에서 경량 운영 가능
- 서버 전용 최적화 설정 가능
- 대규모 클러스터 구성도 지원 (InnoDB Cluster, Group Replication)
4. 다양한 클라이언트 및 API 지원
- 다양한 언어와의 연동: Java(JDBC), Python(PyMySQL), Node.js(mysql2) 등
- 풍부한 관리 툴: MySQL Workbench, phpMyAdmin 등
5. 오픈 소스와 상용 라이선스
- 기본 GPL 버전은 무료 사용 가능
- 상용 라이선스 구매 시, 소스 수정 없이도 상업적 배포 가능
실전에서 보는 MySQL
단일 서버 운영 시 고려사항
- 인덱스 설계: 읽기 성능 최적화의 핵심
- 쿼리 튜닝:
EXPLAIN, ANALYZE를 활용한 쿼리 최적화
- 스키마 설계: 정규화와 비정규화 균형 잡기
- 백업과 복구 전략:
mysqldump, xtrabackup 사용
대규모 시스템에서의 MySQL
- Replication: Master-Slave 구성으로 읽기 부하 분산
- Sharding: 데이터 분산 저장으로 쓰기 병목 해결
- High Availability: MHA, Group Replication, ProxySQL 등 사용
- Monitoring: PMM(Percona Monitoring and Management) 도구 활용
HeatWave: MySQL의 새로운 무기
HeatWave는 트랜잭션, 분석, 머신러닝을 하나의 MySQL DB 안에서 모두 처리할 수 있도록 지원하는 인메모리 가속 서비스입니다.
- 복잡한 ETL 없이 트랜잭션 데이터로 직접 실시간 분석 가능
- 별도의 DWH 구축 없이 데이터 웨어하우스와 유사한 성능 제공
- OCI, AWS, Azure에서 지원