[DB] MySQL vs MongoDB

최지수·2024년 2월 18일
post-thumbnail

데이터베이스 관리 시스템에는 여러 종류가 있다. 그 중에서 대표적인 MongoDB와 MySQL에 대해서 각각 알아보고 두 시스템의 차이점도 알아보려고 한다.

📗정의

MySQL

먼저 MySQL은 데이터를 구조화된 테이블 형식으로 저장하는 관계형 데이터베이스 시스템이다. 다른 관계형 데이터베이스와 마찬가지로 MySQL은 행과 열로 구성된 테이블에 데이터를 저장한다. 사용자는 더 일반적으로 SQL이라고 하는 구조화된 쿼리 언어를 사용하여 데이터를 정의, 조작, 제어, 쿼리할 수 있다.

관계형 데이터베이스란?
MySQL은 관계형 데이터베이스 관리 시스템(RDBMS)이라는 데이터베이스 카테고리에 속한다. 관계형 데이터베이스는 데이터 하나 이상의 열과 행의 테이블 또는 관계에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로 데이터를 구성하는 정보 모음이다. 관계는 이러한 테이블 간의 상호작용을 기반으로 설정되는 여러 테이블 간의 논리적 연결이다.

MongoDB

MongoDB는 오픈소스 비관계형 데이터베이스 관리 시스템(DMBS)으로 테이블과 행 대신 유연한 문서를 활용해 다양한 데이터 형식을 처리하고 저장한다. NoSQL 데이터베이스 솔루션인 MongoDB는 관계형 데이터베이스 관리 시스템(RDBMS)을 필요로 하지 않으므로 사용자가 다변량 데이터 유형을 손쉽게 저장하고 쿼리할 수 있는 탄력적인 데이터 저장 모델을 제공한다.

MongoDB 문서 또는 문서 컬렉션은 데이터의 기본 단위이다. 해당 문서들은 이진 JSON 형식으로 지정되어 다양한 유형의 데이터를 저장할뿐 아니라 여러 시스템 전반에 분산 처리될 수 있다.



📘이점

MySQL

  • 빠르고 안정적이고 확장이 가능하며 사용하기 쉽다.
  • 다양한 운영체제에서 사용할 수 있으며 여러 가지의 프로그래밍 언어를 지원한다.
  • 크기가 큰 데이터 집합도 아주 빠르고 효과적으로 처리할 수 있다.
  • 널리 알려진 표준 SQL 형식을 사용한다.
  • MySQL 응용 프로그램을 사용자의 용도에 맞게 수정할 수 있다.
  • 운영을 위해 많은 양의 리소스가 필요하지 않으므로 비용이 절감됩니다.

MongoDB

  • 임시 쿼리를 처리하는 데 사전 정의된 스키마가 필요하지 않다는 점이다.
  • SQL 데이터베이스와 유사한 쿼리 언어를 사용하므로 초보 개발자나 고급 개발자 모두에게 모두 용이한 접근성을 제공한다.
  • 다중 언어를 지원한다.
  • 샤딩(sharding)이라고 불리는 이러한 수평적 확장은 클라우드에 기반한 배포 용량을 확장하는 동시에 조직이 하드웨어를 수직적으로 확장하는 비용을 방지한다.
  • JSON 형태로 저장이 가능해서 직관적이고 개발이 편하다.
  • 읽기, 쓰기 성능이 뛰어나고 캐싱이나 많은 트래픽을 감당할 때 사용하면 좋다.


📕단점

MySQL

  • 대규모 데이터베이스를 처리할 수 있지만 효율적으로 처리하지는 못한다.
  • 개발 및 디버깅 툴은 다른 유료 경쟁사 제품만큼 기능이 풍부하지 않다.
  • 트랜잭션을 처리하는 방식이 비효율적이고 안정성 문제가 발생하기 쉽기 때문에 그러한 유형의 애플리케이션에는 적합하지 않다는 우려가 있다.
  • 다른 앱과 달리 직관력이 부족하다.
  • 용도에 따라 대용량 메모리 저장 공간이 필요하다.

MongoDB

  • JOIN이 없으므로 JOIN이 필요 없도록 데이터 구조화가 필요하다.
  • SQL을 완전히 이전할 수는 없다.
  • 비효율적인 Key 중복 입력으로 인해 데이터 공간 소모가 RDBMS에 비해 많다.
  • 많은 인덱스를 사용할 경우 메모리를 크게 잡아먹어 충분한 메모리 확보가 필요하다.
  • 데이터 업데이트 중 장애발생 시 데이터 손실이 가능하다.


📌MySQL vs MongoDB

유사점

  • MySQL 및 MongoDB는 인덱싱을 사용하여 쿼리 속도와 성능을 개선한다.
  • 동일하게 다양한 프로그래밍 언어와 호환된다. Java, Python, Node.js, 서버 측 PHP, Ruby 및 C#을 MongoDB와 MySQL 모두에서 사용할 수 있다.
  • 인증, 액세스 제어 및 암호화를 사용하여 데이터베이스의 보안을 보장한다. TLS/SSL 암호화를 사용하여 전송 중 데이터와 저장된 데이터를 보호한다.

차이점

  • MySQL은 데이터를 열, 행 및 테이블에 저장하는 관계형 데이터베이스 시스템이고 MongoDB는 모든 데이터를 BSON(BinaryJSON) 문서로 저장하는 문서 지향 데이터베이스이다.
  • MySQL 데이터베이스 시스템에서는 확장에 사용할 수 있는 옵션이 제한되어 있고 MongoDB 설계는 확장성 측면에서 상당한 이점을 제공한다.
  • MySQL은 적절하게 인덱싱된 여러 테이블에서 고성능 조인을 수행하도록 설계되었는데 MongoDB 문서는 계층적 데이터 모델을 따르며 대부분의 데이터를 단일 문서에 보관하므로 여러 문서 간의 조인이 필요하지 않다.
  • MySQL은 고정된 스키마를 사용하며 데이터를 행과 테이블로 구성한다. MySQL을 사용하려면 데이터를 구조화하고 테이블 형식 시스템에 맞춰야 하고 MongoDB는 데이터를 JSON 문서로 저장하여 다양한 데이터 유형을 가진 복잡한 애플리케이션을 구축할 수 있도록 한다.

차이점 요약

참고
MongoDB와 MySQL의 차이점은 무엇인가요?
MySQL이란 무엇인가요?
MongoDB란?

profile
오늘보다 내일 더 성장하는 개발자🌱

0개의 댓글