SQL vs NoSQL 선택하기

SQL 과 NoSQL 의비교

그럼 SQL과 NoSQL은 언제 어떤 것을 선택하는 것이 좋을까 ?

  • SQL 의 특징
    • 시작 단계에서 익혀야할 것들이 있다.
    • 데이터가 고정적이고, 구조를 가진다.
    • 데이터 찾기가 쉽다.
    • 서로 다른 테이블에서 연관된 데이터를 연결해서 찾기가 쉽다. (Aggregate Queries)
    • 각각의 개별적인 데이터를 분리해서 다른 테이블로 만드는 것이 쉽다.
    • 확장이 어려움
    • 상대적으로 비쌈
  • NoSQL 의 특징
    • 시작하기 쉽다.
    • 데이터가 유연하다.
    • 데이터를 찾기가 쉽다.
    • 관계형이 아니므로, 연관된 데이터를 연결해서 찾기가 어렵고, 성능도 떨어진다.
    • 하나의 데이터를 여러개로 분리하는 것이 어렵다.
    • 확장이 쉬움
    • 상대적으로 저렴함

확장성(Scaling)

SQL 같은 경우에는 서로 다른 테이블이 연관이 되어져 있기 때문에, 하나의 테이블에 있는 데이터가 다른 테이블에서 필요할 확률이 높다. 그래서 각각의 테이블을 다른 서버에 배포/관리하기 어렵다. 할 수는 있겠지만 .. 서로 연관이 되어져있기 때문에 묶어서 가져오기위해 여러가지 일들을 처리해줘야함.

그래서 테이블 안에 데이터가 많아지고, 데이터베이스에 성능을 올려야한다면 수직적으로만 확장이 가능하다. 즉, 서버자체의 RAM, CPU, Disk 를 증설해야한다.

반면에 NoSQL은 서로 다른 데이터들이 연관이 없으므로, 각각 다른 데이터의 collection을 다른 서버에 배포할 수 있다. 즉, 수평적으로 확장이 가능하다.


SQL – NoSQL 선택 기준

  1. The type of data
    • 어떤 데이터 타입을 저장할건지
  2. The amount of data
    • 얼마나 많은 사용자가 이용하는지 / 각각의 사용자마다 얼마나 많은 데이터를 유지하는지
  3. Data will be queried?
    • 각각의 데이터들이 서로 관계가 있는지
    • 관계가 있는 데이터를 묶어서 찾는게 필요한지

SQL / NoSQL 이 주로 사용되는 예제

  • SQL
    • Accounting Software
    • E-commerce Platforms
    • Customer Relationship Software (CRM)
    • ..
  • NoSQL
    • Social Networks (Graph)
    • Distributed Cache (Key-value)
    • Content Management Systems (Document)
    • Real-time analytics (wide-column)

사실 SQL 이냐 , NoSQL 이냐 .. 딱 하나만 골라야하는 것은 아니고, 많은 기업들이 Hybrid 형식을 취한다.

그 말은 , 하나의 제품에서 한 종류의 DB만 사용하는 것이 아니라 같은 소프트웨어라고 할지라도 필요에 따라 부분적으로 다른 DB를 사용한다.