이제막 NoSQL 공부중인 개발자입니다.
NoSQL이 대량 데이터 처리에 대한 RDBMS의 한계를 해결하기 위해 나타난건 알겠는데요,
구체적으로 어떤 점에서 성능적 차이가 나타나는지 설명해주는 내용이 없어서 여기에다가 글을 남기게 되었습니다^^;
어느 NoSQL관련 책에서는 RDBMS로도 샤딩이 가능하지만 샤딩 처리를 위해 어플리케이션 레벨에서 처리해야하는 부분이 있다면서 단점(단지 이것뿐?)처럼 쓰여있던데,
제가 알기론 DB자체적으로 Auto-sharding하는 기능이 있는 RDBMS도 있는 걸로 알고 있습니다;;
또, RDBMS로 분산 처리할 때, RDBMS는 READ하는 부분은 여러 노드를 둘 수 있지만, WRITE는 하나 뿐이기에 이 부분이 병목으로 작용하여 성능이 안좋다고 하는것도 보았는데, 일관성 부분만 포기하면 RDBMS도 WRITE 노드를 여러개 둘 수 있다고 본걸로 기억합니다..
그래서 제 스스로 대충 이해하기로는 RDBMS는 ACID 트랜잭션 처리를 위한 데이터 구조와 설계를 가지고 있기 때문에 이 부분을 포기한 NoSQL이 성능적 이점이 있을 것이며, 또한 RDBMS로 일관성을 포기하여 분산시스템을 구축할 바엔, 태생이 일관성을 포기한 NoSQL을 사용하는 것 아닌가? 하며 어렴풋이 이해하며 넘어가는 중이었습니다.
하지만 이는 제 주관적인 생각이고. 확실하고 객관적인 이해에 대한 갈증이 있어서 견디질 못하고 있네요 ㅠㅠ
도와주실 분 계신가요???
(위 내용중 제가 잘못 이해하고 있는 지점이 있다면 꼭 말씀해주세요!)