프로그래밍 언어/Database

MongoDB 또는 기타 문서 지향 데이터베이스 시스템의 사용시기

Rateye 2021. 7. 2. 10:41
728x90
반응형
질문 : MongoDB 또는 기타 문서 지향 데이터베이스 시스템을 언제 사용해야합니까?

비디오 및 오디오 클립, 사진 및 벡터 그래픽을위한 플랫폼을 제공합니다. 우리는 MySQL을 데이터베이스 백엔드로 시작했고 최근에는 MongoDB 가 요구 사항에 더 적합하기 때문에 파일의 모든 메타 정보를 저장하기 위해 MongoDB를 포함했습니다. 예를 들어, 사진에는 Exif 정보가있을 수 있고 비디오에는 메타 정보를 저장하려는 오디오 트랙도있을 수 있습니다. 비디오와 벡터 그래픽은 일반적인 메타 정보 등을 공유하지 않으므로 MongoDB가이 구조화되지 않은 데이터를 저장하고 검색 가능하게 유지하는 데 완벽하다는 것을 알고 있습니다.

그러나 우리는 플랫폼을 계속 개발하고 기능을 추가합니다. 이제 다음 단계 중 하나는 사용자를위한 포럼을 제공하는 것입니다. 이제 제기되는 질문은 : 포럼 및 포럼 게시물 등을 저장하는 데 좋은 선택이 될 MySQL 데이터베이스를 사용하거나 MongoDB를 사용하는 것입니다.

그래서 질문은 MongoDB를 언제 사용하고 RDBMS를 언제 사용해야 하는가입니다. 선택권이 있다면 mongoDB 또는 MySQL 중 무엇을 취하고 왜 취하겠습니까?

답변

NoSQL : If Only It Was That Easy , 저자는 MongoDB에 대해 다음과 같이 씁니다.

MongoDB는 키 / 값 저장소가 아니며 훨씬 더 많습니다. 확실히 RDBMS도 아닙니다. 프로덕션에서 MongoDB를 사용하지는 않았지만 테스트 앱을 만드는 데 약간 사용했으며 매우 멋진 키트입니다. 매우 성능이 뛰어나고 내결함성 및 자동 샤딩 (확장 예정)이 있거나 곧있을 것입니다. Mongo가 지금까지 본 RDBMS 대체품에 가장 가까운 것 같습니다. 모든 데이터 세트 및 액세스 패턴에 대해 작동하지는 않지만 일반적인 CRUD 항목을 위해 구축되었습니다. 본질적으로 거대한 해시를 저장하고 이러한 키 중 하나를 선택할 수 있다는 것은 대부분의 사람들이 관계형 데이터베이스를 사용하는 것입니다. DB가 3NF이고 조인을 수행하지 않는 경우 (대부분의 사람들이 웹 앱에서하는 것과 같이 여러 테이블을 선택하고 모든 개체를 모으는 것입니다) MongoDB는 아마도 당신을 위해 당황 할 것입니다.

그런 다음 결론적으로 :

실제로 지적해야 할 점은 데이터베이스를 선택할 수 없기 때문에 멋진 것을 만드는 데 방해가되는 경우 잘못하고 있다는 것입니다. mysql을 알고 있다면 사용하십시오. 실제로 필요할 때 최적화하십시오. ak / v 스토어처럼 사용하고, rdbms처럼 사용하지만, 제발, 킬러 앱을 빌드하세요! 이 중 어느 것도 대부분의 앱에서 중요하지 않습니다. Facebook은 여전히 MySQL을 많이 사용합니다. Wikipedia는 MySQL을 많이 사용합니다. FriendFeed는 MySQL을 많이 사용합니다. NoSQL은 훌륭한 도구이지만 확실히 경쟁 우위가 아니며 앱을 뜨겁게 만들지 않으며 무엇보다도 사용자가 이것에 대해 신경 쓰지 않을 것입니다.

다음 앱을 무엇에 구축 할 예정입니까? 아마도 Postgres 일 것입니다. NoSQL을 사용합니까? 아마도. Hadoop과 Hive를 사용할 수도 있습니다. 모든 것을 플랫 파일에 보관할 수 있습니다. Maglev에서 해킹을 시작할 수도 있습니다. 나는 일에 가장 적합한 것을 사용할 것입니다. 보고가 필요한 경우 NoSQL을 사용하지 않습니다. 캐싱이 필요하면 아마도 Tokyo Tyrant를 사용할 것입니다. ACIDity가 필요하면 NoSQL을 사용하지 않습니다. 많은 카운터가 필요하면 Redis를 사용합니다. 트랜잭션이 필요하면 Postgres를 사용합니다. 단일 유형의 문서가 많은 경우 Mongo를 사용할 것입니다. 하루에 10 억 개의 개체를 작성해야한다면 Voldemort를 사용할 것입니다. 전체 텍스트 검색이 필요하면 Solr을 사용합니다. 휘발성 데이터에 대한 전체 텍스트 검색이 필요하면 아마도 Sphinx를 사용할 것입니다.

나는이 기사를 좋아하고, 매우 유익하며, NoSQL 환경과 과대 광고에 대한 좋은 개요를 제공합니다. 그러나 이것이 가장 중요한 부분입니다. RDBMS와 NoSQL 중에서 선택할 때 올바른 질문을하는 것이 정말 도움이됩니다. 읽을만한 가치가 있습니다.

기사에 대한 대체 링크

출처 : https://stackoverflow.com/questions/1476295/when-to-use-mongodb-or-other-document-oriented-database-systems
728x90
반응형