Files
kui-vault/content/03.Note/관계형 데이터베이스(RDBMS)의 한계.md
2026-05-04 10:30:04 +09:00

2.4 KiB

id, created, tags, aliases
id created tags aliases
관계형 데이터베이스(RDBMS)의 한계 20260420 2026-04-20 10:08

💡 생각

서버의 수평적확장이 어려움 + 관계가 복잡해지면 조인연산이 느려질 수 있음


1. 유연하지 못한 스키마 (Rigid Schema)

RDBMS는 데이터를 저장하기 전에 미리 테이블 구조(Schema)를 정의해야 합니다.

  • 변경의 어려움: 서비스 운영 중에 데이터 구조를 변경하려면 ALTER TABLE과 같은 작업을 수행해야 하는데, 데이터 양이 많을 경우 시스템 부하가 크고 서비스 중단이 발생할 수 있습니다.

  • 비정형 데이터 처리: SNS 포스트, 로그 파일, 이미지 메타데이터 등 구조가 일정하지 않은 데이터를 담기에는 부적합합니다.

2. 수평적 확장(Scaling-out)의 어려움

RDBMS는 기본적으로 단일 서버의 성능을 높이는 수직적 확장(Scale-up) 에 최적화되어 있습니다.

  • 분산 저정의 복잡성: 여러 대의 서버에 데이터를 나누어 저장(Sharding)할 수 있지만, 이 경우 데이터 간의 일관성을 유지하고 조인(Join) 연산을 수행하는 것이 매우 까다로워집니다.

  • 비용 문제: 고성능의 단일 서버를 구축하는 비용은 서버를 여러 대 늘리는 비용보다 기하급수적으로 비싸집니다.

3. 복잡한 관계와 조인(Join) 성능 저하

데이터 간의 관계가 복잡해질수록 여러 테이블을 연결하는 조인 연산이 많아집니다.

  • 성능 병목: 수백만 건 이상의 데이터가 포함된 테이블들을 빈번하게 조인하면 쿼리 실행 속도가 급격히 느려집니다.

  • 객체-관계 불일치 (Impedance Mismatch): 객체지향 프로그래밍 언어의 구조와 RDBMS의 테이블 구조가 서로 달라, 이를 변환하는 과정(ORM 등)에서 복잡성이 증가하고 성능 손실이 발생합니다.

4. 대용량 데이터 처리 속도

초당 수만 건 이상의 쓰기 작업이 발생하는 실시간 서비스나 테라바이트(TB) 단위의 데이터를 분석하는 환경에서는 RDBMS의 ACID 트랜잭션 보장 기능이 오히려 독이 될 수 있습니다.

  • 잠금(Locking) 현상: 데이터의 일관성을 위해 특정 행이나 테이블을 잠그는 과정에서 대기 시간이 발생하여 전체적인 처리량이 떨어집니다.