저는 일주일 동안 NoSQL 데이터베이스에 대해 배웠습니다.
저는 NoSQL 데이터베이스의 장점과 많은 유스 케이스를 잘 알고 있습니다.
그러나 종종 사람들은 NoSQL이 관계형 데이터베이스를 대체 할 수있는 것처럼 기사를 작성합니다 . 그리고 나는 내 머리를 얻을 수없는 요점이 있습니다.
NoSQL 데이터베이스는 종종 키-값 저장소입니다.
물론 할 수 저장 (JSON에서, XML을, 어떤 데이터를 인코딩하여) 키 - 값 저장소에 모든 것을,하지만 내가 보는 문제는 당신이 할 필요가 있다는 것입니다 수 많은에 특정 기준과 일치하는 데이터의 일부 금액을 사용 사례. NoSQL 데이터베이스에는 효과적으로 검색 할 수있는 기준이 하나뿐입니다 (키). 관계형 데이터베이스는 데이터 행의 모든 값을 효과적으로 검색하도록 최적화되어 있습니다.
따라서 NoSQL 데이터베이스는 내용으로 검색해야하는 데이터를 유지하기위한 선택이 아닙니다. 아니면 내가 잘못 이해 했습니까?
예를 들면 :
웹샵에 대한 사용자 데이터를 저장해야합니다.
관계형 데이터베이스에서는 모든 사용자를 users
ID, 이름, 국가 등이 포함 된 표의 행으로 저장합니다 .
NoSQL 데이터베이스에서는 ID를 키로 사용하고 모든 데이터 (JSON 등으로 인코딩)를 값으로 사용하여 각 사용자를 저장합니다.
따라서 특정 국가에서 모든 사용자를 확보해야하는 경우 (어떤 이유로 마케팅 담당자가 이에 대해 알아야 할 경우) 관계형 데이터베이스에서는 쉽게 수행 할 수 있지만 NoSQL 데이터베이스에서는 그다지 효과적이지 않습니다. 모든 사용자를 확보 하고 모든 데이터를 구문 분석 하고 필터링하십시오.
나는 그것이 불가능하다고 말하지는 않지만 훨씬 까다로워서 NoSQL 항목의 데이터를 검색하려는 경우 효과적이지 않을 것이라고 생각합니다.
이 국가에 거주하는 모든 사용자의 키를 저장하는 각 국가의 키를 생성하고이 국가의 키에 보관 된 모든 키를 가져와 특정 국가의 사용자를 확보 할 수 있습니다. 그러나이 기술은 복잡한 데이터 세트를 훨씬 더 복잡하게 만듭니다. 구현하기가 어렵고 SQL 데이터베이스 쿼리만큼 효과적이지 않습니다. 그래서 나는 그것이 프로덕션에서 사용하는 방법이 아니라고 생각합니다. 아니면?
그런 유스 케이스를 처리하기 위해 무언가를 잘못 이해했거나 일부 개념이나 모범 사례를 간과했는지 확실하지 않습니다. 어쩌면 당신은 내 진술을 수정하고 내 질문에 대답 할 수 있습니다.