본문 바로가기
개발자의삶/mysql

mysql과 Nosql 의 선정 기준

by 트라네스 2025. 1. 23.
728x90
반응형

 예전에 이직을 위해서 면접을 봤었는데 명확한 답을 내놓지 못해서 이번에 정리를 하려고 한다. 당시에 나는 key-value의 빠른 접근과 비정형 데이터의 취급이 용이한 Nosql의 장점과 RDB의 트랜잭션(ACID 보장)등을 얘기했던 거 같다. 하지만 되돌아온 답변은 '그런데 mysql 에도 json 타입을 제공하는 칼럼도 있어서 비정형을 지원하는데 어떻게 생각하냐?'라는 질문이 있었는데 이 질문에 대해 답변을 잘 못한 것 같았다. 

 

 일단, DB를 선택하는 기준은 프로젝트의 요구사항, 데이터 구조, 확장성 필요성, 사용 사례 등에 따라 결정된다고 하면 된다. 사실상 다들 아는 말이지만 말을 잘할 수 있는지 알아듣게 할 수 있는지가 중요하다. 

 

일단 간단히 표부터 보면서 비교해보자.

기준 NoSQL MySQL
데이터 구조 유연함 (스키마 없음) 고정적 (스키마 필요)
확장성 수평적 확장성 (스케일 아웃) 수직적 확장성 (스케일 업)
트랜잭션 제한적 강력한 지원
복잡한 쿼리 덜 최적화됨 잘 지원됨
성능 대량 데이터 처리 유리 소규모 트랜잭션에 적합
사용 사례 IoT, 실시간 분석, 소셜 네트워크 금융, ERP, CRM

 

  1. NoSQL을 선택:
    • 유연한 데이터 모델과 높은 확장성이 필요할 때.
    • 비정형 데이터 또는 자주 변경되는 데이터를 다룰 때.
    • 실시간 데이터 처리 및 대규모 트래픽이 요구될 때.
  2. MySQL을 선택:
    • 데이터 무결성과 관계 관리가 중요한 경우.
    • 트랜잭션이 중요한 비즈니스 로직이 있는 경우.
    • 표준 SQL을 통해 데이터를 다뤄야 할 때.

 

자 그러면 아까 이야기했던 mysql의 JSON과 NoSQL의 차이점을 표로 확인해 보자.

기준 mysql - JSON NoSQL
데이터 저장 JSON 데이터 타입 제공 JSON 형태 본질적으로 지원
확장성 수직적 확장성 (스케일 업) 수평적 확장성 (스케일 아웃)
성능 적은 트래픽에서 적합 대규모 데이터 처리에 최적화
트랜잭션 지원 ACID 강력 지원 일부 NoSQL에서 제한적
유연성 관계형 DB 제약 존재 스키마리스 데이터 모델

 

mysql 이 JSON을 제공하지만 한계점이 있다. 

  1. 복잡한 쿼리 성능
    • JSON 데이터를 다룰 때, 복잡한 쿼리나 대량의 데이터 처리에서는 NoSQL보다 성능이 떨어질 수 있습니다.
    • JSON 데이터를 처리하는 함수는 비용이 높은 경우가 많습니다.
  2. 유연성 제한
    • JSON 데이터는 저장 시 유연하지만, 업데이트 및 구조 변경이 빈번하다면 관리가 어려워질 수 있습니다.
    • NoSQL의 스키마리스 모델에 비해 유연성이 제한적.
  3. 수평적 확장성 부족
    • MySQL은 수직적 확장(스케일 업)에 초점이 맞춰져 있어, NoSQL의 분산 처리 시스템만큼 수평적 확장이 용이하지 않습니다.
  4. JSON 데이터 통합 문제
    • JSON 데이터는 일반적으로 관계형 데이터베이스의 스키마와 혼합 사용할 때, 데이터 정규화 및 복잡성이 증가할 수 있습니다.
    • 데이터 모델이 커질수록 관리 및 유지보수가 어려워질 수 있습니다.

 즉, MySQL의 JSON 데이터 타입은 비정형 데이터를 처리하는 데 유용하며, 관계형 데이터베이스의 장점과 JSON의 유연성을 결합할 수 있지만! JSON 데이터가 시스템의 핵심 구조가 되고, 확장성 및 성능이 중요한 요소라면 NoSQL 솔루션(MongoDB, Cassandra 등)을 선택하는 것을 추천한다. 다음에는 Nosql 중에서 왜 Redis를 써야 하는지도 한 번 알아보는 글을 써야겠다.

728x90
반응형

'개발자의삶 > mysql' 카테고리의 다른 글

Mysql 과 MongoDB를 선택할 때 고려할 점 및 비교  (0) 2022.04.06

댓글


TOP

TEL. 02.1234.5678 / 경기 성남시 분당구 판교역로