RDB 특징(장단점)
- Table마다 Schema를 정의해야한다
- data type과 constraint를 통해서, 데이터의 정확성을 보장한다
- SQL을 통해 요청을 처리한다
- 성능을 높이려면 H/W를 고성능으로 교체해야 한다 (=scale up)
- 고성능 H/W는 가격이 매우 비싸다
- RDB의 성능을 높이기(확장하기) 어렵다는 의미이고, 이것을 보고 RDB의 확장성이 낮다고 한다
NoSQL 특징(장단점)
- RDB의 확장성 이슈를 해결하기 위해 나온 DB 모델 (등장배경)
- 분산 컴퓨팅 활용이 목적이고 이것을 통해, 비교적 저렴한 가격으로 DB 성능을 높일수 있다 (=Scale out)
- NoSQL이 분산 컴퓨팅 가능한 이유? : Table이 여러개가 아닌 등, 자세한 내용은 이후 추가예정 (Sharding?)
- 그래서 Hadoop과 함께 언급되는 경우가 많다
- 여러 개의 table이 아닌 Big table 1개만을 사용한다
- 가장 많이쓰이는 NoSQL은 Key-value 형식으로 데이터를 관리한다
- SQL을 사용하지 않는다
- Schema-less
- 구조 변경이 쉽다
- 데이터 형식이 다양하고 / 바뀌기 쉽고 / 정확성보다는 데이터량이 중요한 BigData 사용에 적절하다
- 대표적으로 Redis(Key-value), MongoDB(document-oriented) 등이 있다
In-memory DB 특징(장단점)
- Memory의 가격이 용량대비 충분히 낮아지면서 빠른 DB 성능을 위해 나왔다 (등장배경)
- Disk 대신 memory를 사용함으로써 I/O 성능을 높인다 (SSD처럼)
- 대표적으로 Redis, LMDB 등이 있다
'etc' 카테고리의 다른 글
HTTP state code 2xx, 4xx, 5xx (0) | 2017.12.10 |
---|---|
[OS] process vs thread (그리고 병렬처리 관점) (0) | 2017.12.10 |
[Database] redis docker & python redis 설치하기 (0) | 2017.12.07 |
FFmpeg vs Libav 차이점 (0) | 2017.11.29 |
I/O 방식: sync, async / blocking, non-blocing (0) | 2017.11.28 |
WRITTEN BY
- hojongs
블로그 옮겼습니다 https://hojongs.github.io/