일부 기사에서는 MySQL과 같은 RDBMS가 확장 성이 좋지 않지만 MongoDB와 같은 NoSQL은 적절하게 분할 할 수 있다고 말합니다. RDBMS가 제공 한 기능을 잘 알고 싶습니다. 여러 파편을 포함NoSQL이 전통적인 RDBMS가 확장 성이 좋지 않다고 말하는 이유
답변
대부분의 RDBMS 시스템은 소위 ACID properties을 보장 복잡하다. 이러한 속성의 대부분은 일관성; 데이터를 수정할 때마다 데이터베이스가 하나의 일관된 상태에서 다른 일관된 상태로 전송됩니다.
예를 들어, 단일 트랜잭션에서 여러 레코드를 업데이트하는 경우 데이터베이스는 트랜잭션이 완료되지 않은 한 관련된 레코드가 다른 쿼리에 의해 수정되지 않도록합니다. 따라서 거래하는 동안 여러 테이블을 수정하여 잠글 수 있습니다. 이러한 테이블이 여러 샤드/서버에 분산되어 있으면 적절한 잠금을 획득하고 데이터를 업데이트하고 잠금을 해제하는 데 더 많은 시간이 소요됩니다.
분산 (즉, 확장) 시스템은 동시에 다음과 같은 속성을 모두 보장 할 수 있다는 CAP theorem 상태
:- 일관성
- 가용성
- 파티션 허용
RDBMS 시스템은 일관성을 보장합니다. 샤딩은 시스템을 파티셔닝에 대해 관대하게 만듭니다. 정리로부터 시스템은 가용성을 보장 할 수 없다는 결론을 얻는다. 표준 RDBMS를 확장 할 수없는 이유는 가용성을 보장 할 수 없기 때문입니다. 그리고 데이터베이스에 액세스 할 수 없다면 데이터베이스가 무엇이 좋을까요?
NoSQL 데이터베이스는 가용성을 위해 일관성을 떨어 뜨립니다. 이것이 확장 성이 뛰어난 이유입니다.
RDBMS 시스템을 전혀 확장 할 수 없다는 것은 아닙니다. 단지 더 어렵습니다. This article은 가능한 샤딩 방식과 발생할 수있는 문제점에 대해 간략하게 설명합니다. 대부분의 접근법은 일관성을 희생합니다. 일관성은 RDBMS 시스템의 가장 중요한 기능 중 하나이며 스케일링을 방지합니다.
쿼리 (f.e. 다른 파편에 테이블 간의 조인)
RDBMS에서 조인을 사용하지 않는다면 RDBMS가 쉽게 샤드가 될까요? 그렇다면 NoSQL이라는 새 데이터베이스를 구현할 필요가없는 것 같습니다. – shuitu
RDBMS는 '관계형'데이터베이스의 관리 시스템을 의미합니다. 데이터 간의 관계는 표 사이의 JOIN에 의해 표시됩니다. JOIN을 사용하지 않는다면 데이터베이스가 관계형이 아니므로 키/값 저장소 인 NoSQL을 이동할 수 있습니다. –
왜되는 NoSQL 친구들과 dudettes 마음에 들지 않는 조인 : http://www.dbms2.com/2010/05/01/ryw-read-your-writes-consistency/
- 1. Hadoop에 설명 된대로 RDBMS가 좋지 않습니까?
- 2. 출력 버퍼링을 사용하는 것이 좋지 않다고 생각하십니까?
- 3. SaaS 확장 성 - Tomcat은 확장 성이 충분합니까?
- 4. 데이터베이스 정규화로 확장 성이 저하됩니까?
- 5. Grails는 얼마나 확장 성이 있습니까?
- 6. Java가 매개 변수에 새 값을 할당하는 것은 좋지 않다고 생각합니까?
- 7. C++에서 오랫동안 정밀도가 매우 좋지 않다고 알려져 있습니까?
- 8. Perl 서브 루틴의 레이블을 사용하는 것이 좋지 않다고 생각하십니까?
- 9. 페이지에 많은 CSS3 항목을 사용하는 것이 좋지 않다고 생각하십니까?
- 10. 확장 성이 뛰어난 소켓 서버 설계
- 11. 리프트 프레임 워크의 혜성/역방향 아약스는 얼마나 확장 성이 있습니까?
- 12. Google App Engine (Python)의 확장 성이 뛰어난 태그
- 13. 기본 NoSQL이 문서 디자인 질문
- 14. 확장 성이 뛰어난 웹 사이트에 PHP 프레임 워크를 사용해야합니까?
- 15. 제품 카탈로그에 대해 가장 확장 성이 뛰어난 데이터 모델은 무엇입니까?
- 16. mongrel을 Thin 또는 Passenger로 대체하면 확장 성이 향상됩니까
- 17. 확장 성이 뛰어난 프로젝트의 설계 질문 - 모범 사례를 염두에두고
- 18. 빠르고 확장 성이 뛰어난 영구 맵 권장 - Java
- 19. 두 스키마 중 어느 것이 더 확장 성이 있습니까?
- 20. Linq To SQL은 확장 성이 없다는 것은 무엇을 의미합니까?
- 21. 일부 HtmlHelper 메서드가 확장 메서드로 구현되는 이유
- 22. 전통적인 관리 구조의 스크럼
- 23. Tesseract (OCR 엔진)는 재진입 성이 있습니까?
- 24. NoSQL이 무결점이라면 방대한 양의 업데이트에 어떻게 좋을까요?
- 25. NoSQL이 특정 데이터베이스 문제에 가장 적합한 옵션입니까
- 26. 확장 성이 뛰어난 웹 서비스 기반 아키텍처를 설계하기위한 훌륭한 자료는 무엇입니까?
- 27. "gstring"이라고 말하는 것을 피하는 법?
- 28. XP와 전통적인 좋은 프로젝트 관리
- 29. WCF의 'by ref'인수가 좋지 않습니까?
- 30. DataContractSerializer XML XML serializer 출력의 두 배 크기 - 정말 빠르고 확장 성이 있습니까?
당신은 "공유"말, 또는 "파편"? – StingyJack
또는 샤드 되었습니까? (Lucene에서와 같이)? – bmargulies
[Shard] (http://en.wikipedia.org/wiki/Shard_%28database_architecture%29), 데이터베이스를 별도의 파티션으로 분할하는 것과 같습니다. –