일반적인 RDBMS는 row base이다
create T1 (c1 int, c2 int , c3 int) 로 생성했다면
데이터 저장은 아래처럼 될거다 (= row 단위로 묶여서 1번 row는 c1 옆에 c2 옆에 c3)
select * from t1 where c1 = 1 이면 1,10,100 모두 필요한데
어차피 row 단위로 묶여있으니 한번만 접근하면 row 데이터 다 가져올 수 있다
파랑이만 가져오면 되서 빠르다
OLTP에선 빛을 발하겠지만
근데 OLAP에서도 저 구조가 좋은 걸까???
select sum(c1) from t1 이라 생각하자
row가 2억건이면 2억건의 row를 다 뒤져야한다
만약 c1 끼리 뭉쳐있다면 어떨끼?
C1끼리 뭉쳐있으면 2억건의 접근이 없다. 물론 한번의 접근만으로는 가져오기 힘들겠지만. Rowbase보단 훨씬 빠르다
암튼 Column Base 가 필요한 경우도 있다.
서비스에 맞게 Row Base , Column Base DB를 선택하면 된다
보통 OLAP용으론 Column Base
'DBMS' 카테고리의 다른 글
[SIMD 프로그래밍-1] SIMD 성능 비교 해보기 (0) | 2024.10.28 |
---|---|
[PostgreSQL] pg_stat_statement 보는 법 (ft. analyze table) (0) | 2024.07.16 |
[PostgreSQL] pg_stat_statements 설정하기 (0) | 2024.07.15 |
[PostgreSQL] 기본 명령어 (schema,USER 생성 및 확인하는 방법) (0) | 2024.07.15 |
[AWS] AWSOME DAY - Computing 종류 (Ec2 ,Lambda ,ECS비교) (0) | 2024.07.12 |