-
RDB VS NoSQL 2탄DB 2020. 8. 11. 02:17
**1탄과 연결되는 내용이니 꼭 1탄을 읽고 와주세요.
https://it-techstory.tistory.com/7?category=879777
RDB VS NoSQL 1탄
RDB와 NoSQL을 처음 공부할 때 정말 RDB란 무엇인가? NoSQL이란 무엇인가에 대하여 명확하게 말하기 힘들 때가 있다. 그 때 나의 포스트가 도움되길 바라는 마음에서 내가 공부한 RDB와 NoSQL이 무엇인��
it-techstory.tistory.com
1탄에서 우리는 RDB와 NoSQL의 가장 기본적인 차이를 봤다.
그것과 연계해서 몇가지 더 포스팅 하고자한다.
2.왜 RDB는 분산서버에 불리하고 NoSQL은 분산서버에서 유리할까?
2-1.ACID
보통 RDB에서 분산을 하려면 테이블을 아래 그림과 같은 구조로 나눈다.
이 그림만 봤을때는 이런 생각이 들 수 있다.
"그러면 수직 분할만 하면 괜찮지 않나??"라는 생각 말이다.
하지만 만약 한 두개의 테이블이 아닌 여러 테이블이 서로 연결되게 설계되었고 그상황에서 join명령어를 사용한다고 생각해보자.
그런데 그 테이블들이 여러 서버에 분산되어 있다면??
우리는 이 테이블을 다 찾고 읽는데 어마어마한 시간이 걸릴 것이다.
그러면 그 동안 시간은 지체될 것이고 요청은 밀릴 것이다.
그렇기 때문에 추천하지 않는다.
2-2.그런데 요즘에는 NoSQL에서도 ACID를 지원하는 NoSQL이 있는데?
맞다.요즘에는 Nosql도 ACID를 부분지원한다.
그런데 왜 RDB가 더 불리할까?
일단 간단하게 ACID를 지원하는 Nosql의 아키텍쳐를 간단하게 살펴보자.
Foundation Nosql 부분적이지만 ACID를 사용하면 분명 지연될 텐데 사용한다.
그러면 NoSQL의 장점이 없어지는게 아닌가 라는생각을 할 수도 있는데 아니다.
일단 기본적으로 ACID를 지원하는데 제한을 둔다.
FoundationDB의 경우 자체적으로 딱 5초동안만 트랜잭션을 지원한다.즉 시간 제한을 두어 지연을 방지한다.
보통 Nosql의 경우에는 ACID를 지원할 때 제한을 두거나,아니면 잘 살펴보면 용도가 지정되어있는(권장되는-ex:HBASE) 경우가 많다.
그런데 NoSQL의 경우 ACID를 지원해도 RDB보다 훨씬 빠르다.
이유는 1탄을 읽어봣던 분들은 이해 할 것이다.
자료구조 차이다. RDB는 배열이고 NoSQL은 Map구조 이기 때문에 당연히 읽기속도가 현저히 차이 날 수 밖에 없다.
기본적으로 자료를 읽어 올때 NoSQL이 훨씬 빠를 수 밖에 없는데 이 때문에 ACID를 지원해도 기본적으로 RDB보다 빠를 수 밖에 없다.
2탄이 끝났으니 다음에 다시 간단하게 3탄으로 돌아오겠다.
혹시 궁금하신 점이나 제가 틀렸다 생각되는 부분 있으면 코멘트 부탁드립니다~
'DB' 카테고리의 다른 글
MySQL 데이터 압축 (0) 2025.02.15 MySQL 아키텍처 및 MySQL 쿼리 실행 알고리즘 (0) 2025.02.15 mysql의 인덱스(r-tree,b-tree, 전문검색, 함수기반, 멀티밸류, 클러스터링, 유니크) (0) 2025.02.15 MongoDB - Geo Index 에 대한 연구 (0) 2024.04.21 RDB VS NoSQL 1탄 (0) 2020.08.09