이전 프로젝트에서 사용하던건 PostgreSQL인데 이번 프로젝트는 동시성 이슈가 발생할 수 있는 프로젝트를 진행하려고 합니다!
원래 하던대로 PostgreSQL을 무지성으로 선택하는 것보다 이유가 필요하다고 생각해서 고민하고 있는데 주로 어떤걸 사용하시나요?
제 고민은 이렇습니다!
PostgreSQL은 모든 구성에서 트랜잭션 특징인 ACID를 완벽하게 호환하며, MVCC를 제공하여 동시성을 제어할 수 있고, 저장 프로시저, 트리거, 데이터 유형 등 다양한 기능을 제공한다고 합니다. 이 때문에 동시성 이슈 문제에서 좀 더 유리하다고 생각했습니다.
하지만 여기서 드는 의문은 "그렇다면 왜 많은 회사에서 MySQL을 사용하는 걸까?" 라는 생각이 들었습니다. 동시성 이슈 대응이나, 트랜잭션 또한 애플리케이션에서 해결할 수 있는 문제라고 생각했고, 결국 READ 속도가 빠른 MySQL을 사용하는게 유리한게 아닐까 생각이 들었습니다.
결국 MySQL을 사용해보려고 하는데, 제가 생각하기엔 명확한 해답이 아닌것 같아 슨배님들의 조언을 들어보려고 글 싸질러봅니다.
시장에서 MySQL 많이 쓰는 이유는 자바 많이 쓰는 이유랑 비슷하다고 생각하는데.. 시니어 수급이 쉬우니까
!!! 그런생각은 말씀해주시기 전까진 생각도 못했네요
글쎄요? rdb 대신 nosql 를 썼다면 모를까 rdb 와 rdb를 비교하는건 의미가 크게 있을까 싶네여
좋은 의견 감사합니다!
postgresql은 읽기에 좀더 특화되어 있고 쓰기나 수정이 많을 경우에 성능이 mysql보다 떨어짐
엥 MySQL InnoDB도 MVCC 지원하고, 트랜잭션 지원하지 않나 MyISAM 엔진 특징을 가져온 것 같은데
이것도 뒤늦게 봤어요! 정말 감사합니다 ㅠㅠ
mvcc는 mysql도 지원하는거고 안바꾸는 이유는 원래 썼으니까임. dba 수급하기도 쉽고, 기존 데이터 마이그라는게 쉬운일이 아니라서
포스트그레의 특징에 대해 조사한건 좋은데 그럼 mysql은 왜 안해봤음
열심히 찾아본다고 했는데 막상 찾아보니까 다 있더라구요ㅋㅋㅋ 무지함이 더 컸던거 같습니다 감사합니다!
동시성 이슈가 왜 생기고 이를 어떻게 풀어낼지 고민이 선행되지 않으면 그에 대해 적절한 db가 무엇인지, 어떤 db에서 어떻게 풀어나가야 하는지 추천해드릴수가 없어요.
하나하나 고민하다보니 조금 느리네요 ㅠ 해당 문제에 대해 고민할때 다시 올려보겠습니다! 그때도 잘부탁드려요!