반응형
BASE 모델의 의미
BASE는 강한 일관성을 보장하는 대신 가용성과 확장성을 우선하는 모델!!
- Basically Available (기본적 가용성) : 일부 노드에 장애가 발생해도 전체 시스템은 계속 동작함
- Soft State (소프트 스테이트) : 데이터가 일정 시간 동안 불완전할 수 있음
- Eventually Consistent(최종적 일관성) : 즉각적으로 데이터 일관성을 보장하지 않지만, 일정 시간이 지나면 모든 노드에 데이터가 동일해짐.
비교 항목 | BASE | ACID |
일관성 보장 | 일정 시간 후 | 즉각적 |
트랜잭션 지원 | 약한 트랜잭션 | 트랜잭션(ACID) 보장 |
확장성 | 분산 환경에서 높은 확장성을 가짐 | 확장이 어려움(일반적으로 수직 확장) |
데이터 업데이트 | 점진적으로 반영 | 모든 노드에 즉시 반영 |
적용 대상 | 수평 확장이 필요한 경우(ex. 글로벌 서비스), 빅데이터 처리, 일관성이 약간 늦어도 문제가 없는 경우 (SNS, 로그 시스템) |
전통적인 RDBMS, 금융 시스템, 강한 데이터 무결성이 필요한 시스템, 병원 기록, 회계 시스템 등 데이터 정합성이 중요한 경우 |
인덱스
- 기본 원리
- 특정 컬럼의 값과 해당 값이 저장된 위치(레코드)를 따로 저장하는 구조
- 검색 시 해당 인덱스를 먼저 찾은 후 관련 데이터 위치로 이동하여 데이터셋 확인
- 검색 속도가 빨라지고 성능이 향상됨
- 사용 대상
- WHERE 절에서 자주 검색하는 컬럼
- ORDER BY나 GROUP BY를 자주 사용하는 컬럼
- JOIN 시 연결되는 컬럼 (기본키-외래키 관계)
Clustered Index
- 테이블의 실제 데이터가 인덱스 순서대로 정렬되는 형태(즉, 인덱스 자체가 데이터 그 자체)
- 한 테이블에 하나만 존재 가능
- 검색 속도 빠름
- 자동 정렬
- 삽입 / 삭제 시 속도 저하 가능
- Primary Key를 선언하면 자동으로 Clustered Index 생성
Non - Clustered Index
- 실제 데이터와 인덱스가 따로 저장
- 인덱스를 통해 데이터의 위치(주소)를 먼저 찾고, 그 다음 데이터를 조회
- 한 테이블에 여러 개 생성 가능
- 데이터 정렬 불가
- 검색 속도가 클러스터형보다 느릴 수 있음
- 데이터 삽입 / 삭제 시 성능 영향이 적음
- CREATE INDEX idx_name ON students(name);
- name 필드를 Non-Clustered Index로 설정
반응형