MongoDB 홈페이지에 소개하는 MongoDB와 MySQL 비교에 대하여 정리한 내용입니다.
MongoDB vs. MySQL 주요 차이점
MySQL은 Oracle 사가 갖고 있는 대표적인 관계형 데이터베이스(RDBMS) 입니다. 다른 관계형 데이터베이스처럼 MySQL은 Table에 데이터를 저장하며, SQL(structured query language)을 이용하여 DB에 접근합니다. MySQL 개발자는 애플리케이션에서 사용할 데이터를 위해 다양한 테이블의 정보를 합치는 JOIN 쿼리를 이용하게 됩니다. MySQL은 데이터베이스 스키마를 먼저 정의하여야 하며 테이블에 들어갈 필드들에 대한 규칙을 규정하여 사용합니다.
이에 반에, MongoDB는 NoSQL 데이터베이스로써, JSON과 닮은 형태의 document로 데이터를 저장합니다. Document는 관련된 데이터를 한 번에 저장하며 MQL(MongoDB query Language)을 이용하여 DB에 접근합니다. Document는 규정된 스키마를 두지 않기에, 각 필드는 항상 달라질 수 있습니다. 만약 스키마에 대한 검증이 필요하다면 Collection에 대하여 데이터의 조건을 옵셔널하게 추가할 수 있습니다.
MySQL | MongoDB |
row | document |
table | collection |
database | database |
MySQL과 비교하여 MongoDB가 갖는 강점
1. MongoDB는 빠르게 애플리케이션 구축을 할 수 있으며, 다양한 데이터 타입을 핸들링할 수 있습니다. 또한 스케일링에 대한 관리 기능을 제공하기에 많은 기업들이 cloud database로써 mongoDB를 선택하고 있습니다.
2. MongoDB가 사용하는 document는 객체지향 프로그래밍에 언어와 자연스럽게 매핑되기에 개발이 단순화됩니다. mongoDB를 사용하는것 만으로도 객체를 관계형 테이블로 변환하는 복잡한 매핑 계층(ORM)이 사라집니다.
3. MongoDB의 데이터 구조는 유연하기에, 새로운 비즈니스 요구사항에 대해 잘 반영해줄 수 있습니다. 반면, MySQL은 관계형 구조를 변경시키는데 애플리케이션에 큰 오버헤드를 가져옵니다.
4. MongoDB는 분산 데이터센터에 대하여 스케일링이 가능하며, 데이터 볼륨 및 처리량이 증가함에 따라 중지 없이 쉽게 확장이 가능합니다. 반면, MySQL은 스케일링에 반드시 엔지니어의 작업이 필요합니다.
※ 참고자료