이 질문에 대한 답변을 꽤 많이 받았지만 만족스러운 답을 얻지 못했습니다.관계형 데이터베이스를 가로로 축척 할 수없는 이유
많은 블로그를 읽었으며 대부분은 RDBMS를 수평으로 확장 할 수 없다고 말합니다. 그것을 처리 할 수있는 유일한 방법은 더 큰 기계를 구입하는 것입니다.
그런 다음 가로로 크기를 조절할 수없는 이유를 읽었습니다. 사람들은 ACID 속성에 따라 견고하고 성숙한 서비스를 제공하기 때문에 말합니다. 내 주장은 특정 테이블에 대해 ACID 속성을 제공하기 위해 RDBMS를 삭제할 수 없다는 것입니다. 이것이 수평으로 확장 할 수없는 유일한 이유이며 NoSQL 데이터베이스를 고려해야합니다.
두 번째 인수는 NoSQL 데이터베이스가 데이터를 단일 단위로 저장하는 반면 RDBMS는 여러 테이블에 데이터를 저장한다는 것입니다. 따라서 한 데이터는 한 시스템에 있고 다른 데이터는 다른 시스템에있을 수 있습니다. 따라서 RDBMS를 분산 적으로 분산시키는 것은 어려워집니다. 그들에게 내 질문은 왜 우리가 하나의 테이블에 모든 관련 데이터를 저장하지 않고, 상황에 따라 여러 테이블에 걸쳐 분산시킬 수 없는가하는 것입니다. NoSQL이 단일 콜렉션에서 단일 단위로 데이터를 저장할 수있는 경우, RDBMS가 단일 테이블에 단일 단위로 데이터를 저장할 수없는 이유는 무엇입니까? (예를 들어, 주문이 주문 테이블, 고객 테이블 및 지불 테이블로 분리되어야하는 이유에 대해 NoSQL이 저장하는 방식으로 단일 테이블에 묶을 수없는 이유는 무엇입니까?)
이렇게하면 개발자가 메모리 내 구조를 관계형 구조로 변환하지 않고도 개발할 수 있습니다.
즉, RDBMS를 NoSQL 데이터베이스처럼 동작시키고 수평으로 확장 할 수 있습니까?
그래는 방울로 모든 스틱 - 행운을 빈다하지만 다시 밖으로 점점. –
Teradata는 상용 분산 RDBMS로, 80 년대 초반부터 운영됩니다. 존재한다면 가능할 수 있습니다. –
읽는 블로그를 반복하지 않고 대답하기가 어렵습니다. ACID는 많은 것을 검사하도록 강요합니다 (예제를 시도해 봐야 명확해질 수 있습니다!) rdbms는 데이터 의존성이 높기 때문에 데이터가 체계적이지 않고 어디 에나 퍼져 있으면 복잡해집니다 (불가능하지는 않지만, 클러스터 및 예 json 존재). 이 수표를 (일부) 지우면 다음과 같이 할 수 있습니다. 오프라인 노드가 있어도 원하는 위치에 모든 것을 저장할 수 있습니다. Google 결과 또는 Facebook 목록이 빠르지 만 100 % 정확하지 않은 경우 함께 살 수 있습니다. 은행이 같은 방식으로 생각한다면 불만을 제기 할 수 있습니다. – Solarflare