NoSQL 사용 사례 시나리오 또는 NoSQL을 사용하는시기
모든 과대 광고를 통해이 사용 시점에 대한 신뢰할 수있는 정보를 찾기가 정말 어려워 보입니다. 그래서 나는 다음과 같은 질문을 제기하며, 이것이 실제로 멍청한 질문이라면 미안합니다.
- 사용자 데이터에 NoSQL을 사용해야합니까? 예 : 프로필, 사용자 이름 + 비밀번호 등
- 중요한 콘텐츠에 NoSQL을 사용해야합니까? 예 : 기사, 블로그 게시물, 제품 인벤토리 등
나는 아니오라고 가정합니까? 그리고 NoSQL은 데이터를 잃어도 빨리 접근 할 수있는 것 같습니다. 그러나 NoSQL 앱에는 중복성이 내장되어있어 데이터를 잃지 않도록합니다.
또한 위의 두 가지 예가 나쁜 경우 NoSQL을 사용하는 특정 비즈니스 사용 사례를 알려주시겠습니까? 일반적인 설명은 많지만 실제 예제는 많지 않습니다. 내가 생각할 수있는 유일한 것은 사용자 간 메시징 및 분석입니다.
감사!
그것은 실제로 "의존"질문이다. 몇 가지 일반적인 사항 :
- NoSQL은 일반적으로 비정형 / "스키마없는"데이터에 적합합니다. 일반적으로 스키마를 명시 적으로 미리 정의 할 필요가 없으며 식없이 새 필드 만 포함 할 수 있습니다.
- NoSQL은 일반적으로 RDBMS 세계 당 JOIN을 지원하지 않기 때문에 비정규 화 된 스키마를 선호합니다. 따라서 일반적으로 평평하고 비정규 화 된 데이터 표현을 갖게됩니다.
- NoSQL을 사용한다고해서 데이터가 손실 될 수있는 것은 아닙니다. DB마다 전략이 다릅니다. 예를 들어 MongoDB-본질적으로 성능과 데이터 손실 가능성을 비교할 수준을 선택할 수 있습니다. 최상의 성능 = 데이터 손실 범위가 더 큽니다.
- NoSQL 솔루션을 확장하는 것은 종종 매우 쉬운 일입니다. 데이터를 복제 할 노드를 더 추가하면 a) 확장 성이 향상되고 b) 한 노드가 다운되면 데이터 손실을 방지 할 수 있습니다. 그러나 NoSQL DB / 구성에 따라 다릅니다. NoSQL은 반드시 유추 한 것처럼 "데이터 손실"을 의미하지는 않습니다.
- IMHO, 복잡한 / 동적 쿼리 /보고는 RDBMS에서 가장 잘 제공됩니다. 종종 NoSQL DB의 쿼리 기능이 제한됩니다.
- 1 또는 다른 선택 일 필요는 없습니다. 내 경험은 특정 사용 사례에 대해 NoSQL과 함께 RDBMS를 사용하고 있습니다.
- NoSQL DB는 종종 여러 "테이블"에서 원자 적 작업을 수행 할 수있는 능력이 부족합니다.
다양한 유형의 NoSQL 스토어가 무엇인지, 그리고 확장 성 / 데이터 보안 등을 제공하는 방법을 살펴보고 이해해야합니다. 실제로 서로 다르고 다르게 다루기 때문에 전체적으로 답변을하기가 어렵습니다. .
예를 들어 MongoDb의 경우 사용 사례 를 확인하여 MongoDb의 "적합한"용도와 "적합한"용도로 제안 된 내용을 확인하십시오.
이 시나리오에서는 Nosql이 "보다 적합"하다고 생각합니다 (보충은 더 환영합니다).
더 많은 노드를 추가하여 쉽게 확장 할 수 있습니다.
큰 데이터 세트에 대한 쿼리
매일 트위터에 수많은 트윗이 게시되어 있다고 상상해보십시오. RDMS에는 수백만 (또는 수십억?) 개의 행이있는 테이블이있을 수 있으며, 복잡한 쿼리에는 테이블 조인이 필요하지만 언급하지 않아도 해당 테이블에 대한 쿼리를 직접 수행하고 싶지 않습니다.
디스크 I / O 병목
웹 사이트가 사용자의 실시간 정보를 기반으로 다른 사용자에게 결과를 보내야하는 경우 초당 약 수십 또는 수십만 건의 SQL 읽기 / 쓰기 요청에 대해 이야기하고있을 것입니다. 그러면 디스크 I / O에 심각한 병목 현상이 발생합니다.
참고 URL : https://stackoverflow.com/questions/10553860/nosql-use-case-scenarios-or-when-to-use-nosql
'IT story' 카테고리의 다른 글
PHP에서 문자열의 첫 문자를 제거하는 방법? (0) | 2020.04.11 |
---|---|
Mathematica에서 맞춤형 배포를위한 NExpectation 최소화 (0) | 2020.04.11 |
.NET에서 구조체의 기본 생성자를 정의 할 수없는 이유는 무엇입니까? (0) | 2020.04.11 |
모든 http : // 링크를 // //로 변경할 수 있습니까? (0) | 2020.04.11 |
Mercurial에서 기능 분기를 올바르게 닫는 방법은 무엇입니까? (0) | 2020.04.11 |