데이터 증가와 잦은 조인으로 인해 RDBMS에서 검색 성능 저하를
해결하기 위해서 NoSQL로 전환하여 역정규화를 통해
애플리케이션 레벨에서 데이터 일관성을 관리할려고 합니다.
그러나 nosql을 쓰다보니 RDBMS의 장점이 다시 부각되기만
하는 어지러운 상황입니다.(쿼리,복장성등)
인덱싱, 쿼리 최적화, 파티셔닝 등으로 한계치에 도달하는
경우에만 nosql로 전환을 고려할까요? 현업에선 아주 큰 규모가
아니면 nosql은 오버엔지니어링인가 의문이 들기도 합니다
- dc official App
애초에 RDBMS와 NoSql은 쓰임이 다른걸로 알고 있습니다.데이터 증가와 잦은 조인에 의한 성능 문제는아키텍처와 프로세싱에 대한 깊은 이해를 기반한튜닝으로 RDBMS에서도 해결이 가능하며이는 RDBMS의 고질적인 문제가 아닌사용자 숙련 수준의 문제입니다.최대한으로 최적화된(계산상으로만 존재하는)인덱스 트리의 경우 행길이에 따라최대 수십억~수백억 행임에도 3depth로구현할 수 있기 때문에고전적인 데이터 영역에서 아직까지도rdbms를 널리 사용합니다. - dc App
그래서 rdbms에서 nosql로의 전환고려는 잘못된 생각이고 그쓰임 자체가 다르기 때문에 처음에 적재적소에 사용하는걸로 알고있어요 - dc App
*처음부터 - dc App
mysql 내부구조가 트리구조 b*라 logn인건 알지만 조인횟수와 데이터크기가 늘어남에 따라서 구조적인 한계에 직면하는건 결국 피할수없을것같고 그에따른 수평적확장과 더불어 조인횟수를 피할려고 nosql의 사용쓰임새가 틀린건 아니라고 생각하는데요..ㅜ - dc App
물론 대부분의 기업에서 그렇게 많은 데이터를 쓰지않는다고 생각하면 rdbms로 모든걸 해결하겠지만 어느정도 사고확장개념으로 질문던지다 생각해주세요 + - dc App
이유야 제가 nosql을 깊게아는게 아니라서 틀릴 수 있으니 차차하고 RDB -> NoSql Migration시 가장큰 고려사항은 데이터 호환성, 기존 sql문에서 nosql을 조회할때 사용하는 구문간의 호환성이 가장 큰 문제일거 같습니다 - dc App
Rdb to Rdb 마이그레이션도 어려운 작업인데 그 기반조차 다른 데이터베이스간 마이그레이션은 모든스키마, 그리고 관련된 모든기능을 테스트하고 포팅해야 되겠지요 그런뒤에도 정상동작을 보장하기에는 무리가 있는거고요 - dc App
비즈니스가 어떤지는 몰라서 튜닝으로 될지 모르겠습니다만 rdb to nosql migration 프로젝트를 진행하는 것보다 튜닝을 깊게 공부하는게 더 빠른길일 수도 있습니다 - dc App
rdb에 비정규화랑 인덱싱만 하면 되는 문제같은데 바꾸는 이유가 납득이 안됨 애초에 용도가 다른데
모를 수는 있는데 고집은 좀 부리지 마라
https://www.slideshare.net/slideshow/jwkim-ndc-mongodbfinal/48334356
10년 전 자료이긴 하지만 이런것도 좀 보고 애초에 용도가 다름
오 좋은자료 굿 - dc App
얾... 아예 용도가 다른데
나중에 나온 기술이랍시고 상위호환 개념으로 접근하면 곤란함
완전한 전환느낌으로 언급한건 아니고 서버를 기능별로 분리하다보니 이건 rdb에서 걷어내야겠다는 생각이 강했음 - dc App
nosql의 시대가 온 줄 알고 섣부르게 도입한 곳 대부분이 대가리 박살나고 다시 rdb로 회귀했음 진짜 디비 +1할 가치가 있는지 고민해보는게
도대체 데이터가 얼마나 많길래...
실무가 아닌 공부용도에요! - dc App
공부용도로 하는데, 검색 성능 저하를 느낌?
ms단위든 사실 늘어난다면 늘어나는거라, 실행계획분석 타고들어가니 조인횟수가 확실히 늘어나더라구요 - dc App
지금 접근을 엄청 잘못하고 있는거 같다는 느낌이드네...
데이터 일관성 관리를 어플리케이션 단에서 하는게 절대 쉬운게 아님. RDBMS만큼 잘하는 건 그냥 불가능이라고 봐도 무방함 - dc App
조인이 잦으면 쿼리 최적화가 먼저 아닐지 - dc App
그냥 고려하지 말아야하나 취준포폴용으로 하나 더 끌어 쓸려했는데 - dc App
공부용이면 뭘해도 상관없지... 아예 db를 직접 만들어서 써도 공부용이라면 의미가 있지 - dc App
rdb에서 nosql 쓰려면 mongo 제외하고 무조건 코드를 엎어야 함. 일단 트랜잭션부터 사용방법이 다름