MongoDB에서 PostgreSQL로 전환한 이유
게시 됨: 2023-02-02여러 가지 이유로 MongoDB에서 PostgreSQL로 옮겼습니다. 첫째, 우리는 MongoDB가 우리가 원하는 만큼 확장성이 없다는 것을 발견했습니다. 둘째, MongoDB에서 제공하는 데이터 모델이 우리가 필요로 하는 만큼 유연하지 않다는 사실을 발견했습니다. 마지막으로 MongoDB 쿼리 언어 가 우리가 필요로 하는 만큼 강력하지 않다는 것을 알게 되었습니다.
우리는 우리 서비스가 99.99%의 가용성을 제공하고 다운타임 업데이트가 없다는 사실을 매우 자랑스럽게 생각합니다. 이 여정에서 저는 기본 프로그래밍 언어로 JavaScript를 선택했습니다. 새로운 기능을 신속하게 추가할 수 있는 능력이 있었지만 간헐적인 다운타임이 발생하기 시작했습니다. 그런 다음 Knockout Punch가 출시되었습니다. 40명이 넘는 개발자가 생성한 마이크로서비스, 스키마 및 마이크로서비스의 수로 인해 코드베이스가 적절하지 않게 보이기 시작했습니다. 낙타의 등을 부러뜨린 지푸라기는 우리의 가장 중요한 컬렉션의 각 문서에 반드시 있어야 하는 중요한 필드의 도입과 함께 도입되었습니다. 컬렉션에 있는 수백만 개의 문서 외에도 이 프로세스의 결과로 데이터베이스 성능이 허용할 수 없는 수준으로 저하되었습니다.
PostgreSQL은 SQL 데이터베이스 측면에서 Oracle 및 MySQL과 유사한 관계형 데이터베이스 관리 시스템(RDBMS)입니다. PostgreSQL은 무료로 사용할 수 있습니다. MongoDB는 SQL이나 스키마를 포함하지 않으며 JSON 데이터베이스입니다. 예를 들어 MongoDB에는 호스팅 및 엔터프라이즈 사용을 위한 무료 버전과 유료 버전이 있습니다.
Postgre는 높은 수준의 보안이 필요하고 트랜잭션 처리가 잘 확장되는 시나리오에서 선호됩니다. MongoDB는 MongoDB에서 실행되는 구조화되지 않은 데이터 스토리지 유형입니다. NoSQL 데이터베이스는 상대적으로 초기 단계이기 때문에 보안 요구 사항이 높은 애플리케이션에는 적합하지 않습니다.
Nosql Mongodb에서 Postgressql로 전환한 이유는 무엇입니까?
![Nosql Mongodb에서 Postgressql로 전환한 이유는 무엇입니까?](/uploads/article/16676/NJGpdp3IMG1yG9Vj.png)
NoSQL MongoDB 데이터베이스에서 PostgreSQL 데이터베이스로 전환하는 데에는 여러 가지 이유가 있습니다. 이러한 이유 중 일부는 MongoDB의 성능 문제, MongoDB 작업의 어려움 또는 MongoDB보다 PostgreSQL의 선호도를 포함할 수 있습니다. 우리의 경우 성능 문제 때문에 PostgreSQL로 이동하기로 결정했습니다. 데이터가 증가함에 따라 MongoDB 데이터베이스가 느려지고 작업하기 어려워지는 것을 발견했습니다. PostgreSQL은 빠르고 강력한 관계형 데이터베이스 이기 때문에 자연스러운 선택처럼 보였습니다.
오픈 소스 데이터베이스로 마이그레이션하는 조직은 오픈 소스 데이터베이스 의 이점과 결함을 잘 이해해야 합니다. MongoDB와 Postgres는 데이터에 다르게 접근한다는 사실에도 불구하고 많은 유사점이 있습니다. 아래 표에는 Postgres와 MongoDB의 상위 수준 비교가 나와 있습니다. 본질적으로 MongoDB를 확장할 수 있지만 그렇게 하려면 PostgreSQL용 확장이 필요합니다. 역할 기반 액세스 제어는 MongoDB 및 Postgres뿐만 아니라 LDAP 및 Kerberos와 같은 널리 사용되는 인증 메커니즘에서 사용할 수 있습니다. 많이 변경되지 않는 기존 데이터 모델이 이미 있는 경우 PostgreSQL을 사용해야 합니다. MongoDB에 내장된 확장성이 필요한 경우 기본 샤딩이 실행 가능한 옵션입니다.
관계형 데이터베이스는 꽤 오랫동안 사용되어 왔으며 시장에서 가장 신뢰할 수 있는 데이터베이스 중 하나로 간주됩니다. NoSQL 데이터베이스만큼 사용하기 쉽지 않으며 훨씬 더 오랜 시간 동안 가르쳐야 합니다. 사용이 간편하고 효율적이기 때문에 MongoDB는 많은 데이터를 저장해야 하는 비즈니스에 탁월한 선택입니다.
Postgresql이 Mongodb보다 나은 이유는 무엇입니까?
![Postgresql이 Mongodb보다 나은 이유는 무엇입니까?](/uploads/article/16676/Tn2NyZlc5QqTTHgl.jpeg)
PostgreSQL이 종종 MongoDB보다 나은 것으로 보이는 데는 여러 가지 이유가 있습니다. 첫째, PostgreSQL은 데이터를 저장하기 위해 테이블과 행을 사용하는 관계형 데이터베이스입니다. 이렇게 하면 데이터를 쿼리하고 데이터 관계를 추적하는 것이 훨씬 쉬워집니다. 반면에 MongoDB는 비관계형 데이터베이스이며 JSON과 유사한 문서를 사용하여 데이터를 저장합니다. 이로 인해 데이터 관계를 추적하기가 더 어려워질 수 있습니다. 또 다른 큰 차이점은 PostgreSQL은 ACID를 준수하지만 MongoDB는 그렇지 않다는 것입니다. 즉, PostgreSQL 트랜잭션은 원자성, 일관성, 격리성 및 내구성이 보장됩니다. 반면에 MongoDB는 문서 수준에서 원자 트랜잭션만 제공합니다. 또한 PostgreSQL은 가장 널리 사용되는 데이터베이스 쿼리 언어인 SQL을 지원합니다. 반면 MongoDB는 MQL(MongoDB Query Language)이라는 자체 쿼리 언어를 사용합니다. MQL은 SQL만큼 널리 사용되거나 이해되지 않기 때문에 새로운 개발자가 작업하기가 더 어려울 수 있습니다. 전반적으로 PostgreSQL은 MongoDB보다 강력하고 강력한 데이터베이스 시스템 입니다. 작업하기 쉽고 널리 사용되며 MongoDB보다 더 많은 기능과 보장을 제공합니다.
Postgres with JSON 프레임워크는 사용자 요구에 대한 보다 총체적인 접근 방식을 위해 설계되어 대부분의 NoSQL 워크로드를 보다 효과적으로 처리할 수 있습니다. eBay, Amazon, Twitter 및 Facebook과 같은 대용량 웹 사이트가 제대로 작동하려면 적절한 확장성과 가용성이 있어야 합니다. 데이터베이스 PostgreSQL은 데이터를 열이 아닌 행에 저장하는 반면 데이터베이스 MongoDB는 데이터를 문서로 저장합니다. PostgreSQL 9.3 플랫폼에는 JSON 형식의 트랜잭션 데이터를 처리하고 필드 데이터 제약 조건을 저장할 수 있는 강력한 NoSQL 데이터베이스 를 만드는 다양한 유용한 기능이 포함되어 있습니다. 예를 들어, 빈 공간, 빈 설명 또는 음수 급여를 포함하지 않는 이름이 항상 있다고 가정합니다. JSON은 이에 대한 좋은 유형이며 Postgres에도 포함되어 있습니다. 정의된 연산자를 사용하면 JSON의 필드와 값에 쉽게 액세스할 수 있습니다.
![](https://s.stat888.com/img/bg.png)
id 필드 외에 필드의 유효성을 검사해야 합니다. Postgres는 데이터베이스에서 유형 정의를 찾아 이를 확인합니다. 마지막으로 한 가지 더 검증해야 할 사항이 있습니다. 구분하려면 id 및 name 필드가 구분되어야 합니다. 이 작업을 수행하려면 인덱스 두 개면 충분합니다.
데이터 웨어하우징 및 분석을 위한 다른 데이터베이스에 비해 MongoDB의 장점 중 하나는 사용 용이성입니다. MongoDB는 데이터를 저장하기 위한 스키마가 없기 때문에 개발 시간과 유지 관리에 많은 노력이 필요한 복잡한 스키마를 가진 데이터 웨어하우징 및 데이터 분석 워크로드에 유리합니다. NoSQL 문서 형식 MongoDB의 JSON과 같은 문서 형식은 다양한 범위의 데이터를 저장할 수 있으므로 쉽게 해석하고 처리해야 하는 데이터에 유용합니다. MongoDB의 스키마리스 디자인은 데이터베이스에 저장된 데이터를 간단하게 변경할 수 있어 필요할 때 필요한 정보를 쉽게 얻을 수 있습니다. 데이터베이스 확장성 : MongoDB는 많은 사용자가 대량으로 처리해야 하는 데이터를 저장하는 데 사용할 수 있습니다. PostgreSQL의 JSON 작업은 MongoDB보다 더 일반적입니다. PostgreSQL은 JSON 작업과 관련하여 다양한 벤치마크에서 MongoDB를 능가합니다. 그러나 두 데이터베이스의 이점을 보여주는 몇 가지 벤치마크가 있습니다. MongoDB와 달리 PostgreSQL은 가능하기 때문에 복잡한 JSON 데이터를 처리하는 데 더 적합합니다. 반면에 PostgreSQL의 우수한 인덱싱 및 쿼리 기능을 사용하면 JSON 문서에서 데이터를 빠르게 찾고 검색할 수 있습니다. MongoDB는 적응성과 민첩성이라는 장점이 있습니다. MongoDB 스키마리스 디자인은 데이터베이스에 저장된 데이터를 간단하게 수정할 수 있게 해 주므로 자주 업데이트해야 하는 데이터나 빠르고 쉽게 변경해야 하는 상황에서 유용할 수 있습니다. PostgreSQL은 JSON 작업 측면에서 MongoDB를 능가하지만 경우에 따라 도움이 될 수도 있습니다. MongoDB는 JSON 데이터와 동일한 수준의 효율성 및 확장성을 요구하지 않는 데이터에 탁월한 선택입니다.
언제 Mongodb와 Postgres를 사용해야 합니까?
![언제 Mongodb와 Postgres를 사용해야 합니까?](/uploads/article/16676/OKXFspoXBspjruT2.jpg)
여러 요인에 따라 달라지므로 이 질문에 대한 명확한 답은 없습니다. 그러나 일반적으로 MongoDB는 구조화되지 않은 데이터를 처리하는 데 더 적합한 반면 Postgres는 구조화 데이터를 처리하는 데 더 적합합니다. 어떤 유형의 데이터를 다루고 있는지 확실하지 않은 경우 일반적으로 MongoDB 측에서 오류를 범하는 것이 가장 좋습니다.
데이터베이스가 필요한 이유를 이해하면 데이터베이스 구조를 선택하는 데 도움이 됩니다. 데이터베이스의 세션 지속성 기능을 사용하면 사용자가 로그인하고 오랜 시간 동안 로그인 상태를 유지할 수 있습니다. 사용 중인 데이터 유형은 데이터 및 클라이언트 요구 사항에 가장 적합한 데이터베이스를 결정하는 데 도움이 됩니다. 위의 소매점 예에서 전산화된 데이터베이스는 생산성을 높이고 수작업의 양을 줄였을 수 있습니다. 포괄적인 재고 관리 시스템을 갖춘 데이터베이스는 이 회사의 기술 발전을 크게 가속화했을 것입니다. 해당 정보를 체계적으로 구성하여 데이터 및 고객 요구에 가장 유익한 데이터베이스에 대한 최선의 결정을 내릴 수 있습니다.
PostgreSQL은 수년 동안 개발되어 왔으며 광범위한 테스트를 거쳤습니다. 그것은 다양한 응용 프로그램에서 유용할 수 있는 다양한 기능 세트를 가지고 있습니다. PostgreSQL에 따르면 많은 애플리케이션에는 트랜잭션이 필요하지 않으며 데이터베이스에는 보다 강력하고 신뢰할 수 있는 데이터베이스를 만드는 많은 기능이 있습니다.
Postgresql이 Mongodb보다 나은 이유는 무엇입니까?
PostgreSQL은 여러 시스템, 아키텍처 및 구문으로 구성됩니다. 문서 데이터베이스는 세 가지 유형으로 분류됩니다. MongoDB는 문서 데이터베이스 , PostgreSQL은 모놀리식 데이터베이스 관리 시스템, Postgres는 SQL 데이터베이스 관리 시스템입니다. MongoDB와 PostgreSQL은 모두 BSON을 사용하는 반면 PostgreSQL은 SQL을 사용합니다.
Mongodb가 Postgres보다 느립니까?
아래 그래프에서 볼 수 있듯이 PostgreSQL은 다양한 테스트 시나리오에서 MongoDB보다 4~15배 빠르게 수행되었습니다. 모든 벤치마크 유형에서 데이터 세트가 사용 가능한 메모리 용량보다 커짐에 따라 MongoDB에 비해 성능 이점이 확대되었다는 증거가 있었습니다.