jinsusong / CS-Study

CS
3 stars 5 forks source link

관계형 데이터베이스 vs NoSQL 선택 기준 #90

Open SW-H opened 1 year ago

SW-H commented 1 year ago

장단점 및 상황별 데이터베이스 선택 기준

jungmiin commented 1 year ago

RDBMS 장점

RDBMS 단점

비관계형 DBMS 장점

비관계형 DBMS 단점

jungmiin commented 1 year ago

SQL(=관계형 데이터베이스, MySQL)

⇒ 관계를 맺고 있는 데이터가 자주 변경되는 경우 스키마의 변경이 적거나 확고한 경우

NoSQL

developer-sora commented 1 year ago

구매 내역이나 게임의 로그 같은 데이터들은 매 초마다 엄청난 양이 생성되지만 한번 저장되고 난 뒤에는 수정될 일이 거의 없다. 이런 데이터들을 저장하는 데 데이터의 일관성을 보장하기 위해 ACID 트랜잭션을 지원할 필요는 없을 것이다. 거기다 생성되는 데이터의 양도 많기 때문에 장비의 성능에도 상당한 영향을 미칠 것이다. NoSQL은 이러한 데이터들을 효율적으로 저장할 수 있다. 여러 대의 장비에 빠른 속도로 저장이 가능하며, 데이터의 양이 누적되더라도 얼마든지 수평적 확장이 가능하기 때문이다.

실제로 페이스북이나 트위터같은 소셜 네트워크 서비스에서는 게시글들을 저장하는 데 NoSQL 데이터베이스를 사용하고 있다. 매 초에 수백 기가~수 테라바이트씩 생성되는 데이터들을 RDBMS를 사용해 저장한다면, 글 작성 버튼을 누른 후 글이 중앙 데이터베이스에 저장되기까지 한참을 기다려야 글을 성공적으로 게시할 수 있을 것이다. 하지만 NoSQL의 분산 데이터베이스를 사용한다면 부하가 분산되기 때문에 우리가 글쓰기 버튼을 누르고 한참을 기다릴 필요가 없게 된다. 또한 각종 검색 엔진에도 사용되는 것이 NoSQL인데, 웹 페이지 내의 텍스트들을 형태소 단위의 토큰으로 분리하여 토큰과 해당 토큰이 포함된 페이지들의 URL을 맵핑하는 Inverted Index(역 인덱스) 구조를 NoSQL을 통해 구현한다. 이런 기능을 일반적인 RDMBS로 구현했을 경우 검색 창에 단어를 입력했을 때마다 상당한 시간이 소요될 것이다.

yerimstar commented 1 year ago

image

금융 업계처럼 보수적이거나 저장해야 하는 데이터들이 고정적인 경우 RDBMS를 사용하는 것이 더 좋다. 반대로 웹이나 다량의 데이터를 한꺼번에 처리해야하는 메신저는 NoSQL 방식이 더 유리하다고 볼 수 있다.

출처 : 코딩월드뉴스(https://www.codingworldnews.com)

dupyo commented 1 year ago

RDBMS, NoSQL 언제 사용해야 될까?

RDBMS

NoSQL

출처 : https://velog.io/@leephoter/RDBMS-%EC%99%80-NoSQL

developer-sora commented 1 year ago

https://gyoogle.dev/blog/computer-science/data-base/SQL%20&%20NOSQL.html