특별한 경우, MongoDB는 좋은 선택처럼 들리지만 최선의 선택이 아닌 많은 시나리오 (아마도 대부분)가 있습니다.
MongoDB는 트랜잭션 안전성에 중점을 두지 않고 많은 양 의 데이터 를 읽거나 쓰는 시나리오에 더 적합 합니다 (일부 데이터가 서버 충돌로 인해 때때로 손실되는 경우 큰 문제는 아닙니다). 실제로 안정적인 스키마가 없습니다.
MongoDB는 다음이 필요한 시나리오에 적합 하지 않습니다 .
- 강력한 ACID 보장 : MongoDB는 중복 데이터를 저장하고, 일관되지 않은 읽기 및 심지어 데이터 손실까지 허용합니다. 이러한 것은 일부 응용 프로그램에서는 문제가 없지만 대부분의 응용 프로그램에서는 그렇지 않습니다.
- 다중 객체 트랜잭션 : MongoDB는 ACID 트랜잭션을 지원하지만 단일 객체 / 문서에 대해서만 지원합니다. 이것은 은행 송금, 예약 등의 복잡한 작업을 위해 그것을 잘라 내지 않습니다.
- 기존 BI : 기존 SQL 과만 잘 작동하는 BI 도구가 많이 있습니다.
- SQL : MongoDB는 매우 구체적인 쿼리 언어를 가지고 있지만 SQL은 많은 사람들에게 잘 알려져 있으며 (고려해야 할 중요한 측면 일 수 있음) 많은 복잡한 작업을 수행 할 수 있습니다 (MongoDB의 경우 간단한 수행에 어려움이 있습니다) join) 많은 구현을 통해 양도 할 수 있습니다.
MongoDB는 더 빠르며 무결성 검사와 같이 RDBMS가 기본적으로 시행하는 많은 것들을 제거하여 시스템에서 더 많은 성능을 얻을 수 있습니다 (어쨌든 그러한 목적으로 RDBMS를 조정할 수도 있음). 대부분의 시나리오에서는 필요하지 않습니다. 또한 안정성과 유연성이 절충됩니다 (나중에 기존 데이터로 더 복잡한 작업을 수행해야하는 경우 문제가 발생할 수 있음).
그것은 모두 당신이 만들고있는 응용 프로그램의 요구에 달려 있습니다. 속도와 가용성 또는 안전, 신뢰성 및 유연성입니까? 데이터의 어느 부분 (및 데이터의 연결 부분)이 더 가치가 있는지 알아야합니다. 아직 모를 경우에는 나중에 구석에 페인트하지 않을 기능을 선택하고 기능을 추가하고 응용 프로그램에 필요한 작업을 수행 할 수있는 것이 가장 좋습니다.