내 프로젝트에서 두 데이터베이스로 작업 한 후 Postgres와 Mongo에 대한 나의 경험. 당신의 미래 응용 프로그램은 조인 또는 우리가 무거운 기록이있는 경우 모든 데이터가 관계가 있거나 많이 필요로하는 복잡한 스키마가있는 경우
포스트 그레스 (RDBMS)을
포스트 그레스 권장합니다. Postgres는 오픈 소스, 더 빠르고 ACID를 준수하며 디스크의 메모리를 적게 사용하며 JSON 저장소에도 좋은 성능을 제공하며 3 단계의 트랜잭션 격리로 트랜잭션의 완벽한 직렬화 기능을 포함합니다.
Postgres를 사용하는 가장 큰 장점은 우리가 두 가지면에서 모두 우수하다는 것입니다. 제약, 일관성 및 속도로 JSONB에 데이터를 저장할 수 있습니다. 다른 한편으로, 우리는 다른 유형의 데이터를 위해 모든 SQL 기능을 사용할 수 있습니다. 기본 엔진은 매우 안정적이며 다양한 데이터 볼륨을 잘 처리합니다. 또한 하드웨어 및 운영 체제를 선택하여 실행됩니다. Postgres는 NoSQL 기능과 완전한 트랜잭션 지원을 제공하고 필드 데이터에 제약 조건이있는 JSON 문서를 저장합니다.
스케일링 포스트 그레스 수평 포스트 그레스
에 대한
일반 제약은 상당히 열심히하지만 행할 수있다.
빠른 읽기 작업은 Postgres로는 완전히 수행 할 수 없습니다.
NO SQL 데이터베이스
MongoDB를 "은 가로 크기"의 치수 포스트 그레스 이길 수
몽고 DB (유선 타이거). JSON을 저장하는 것은 Mongo가하도록 최적화되어 있습니다.Mongo는 데이터를 JSON의 수퍼 세트를 (대략) 바이너리 표현 인 BSONb라는 이진 형식으로 저장합니다. MongoDB는 객체가 설계된대로 정확하게 객체를 저장합니다. MongoDB에 따르면 쓰기 집약적 인 응용 프로그램의 경우 Mongo에 따르면 새로운 엔진 (Wired Tiger)을 사용하면 쓰기 성능이 최대 10 배 향상되고 (필자도 시도해야 함) 저장소 사용률이 80 % 감소하여 저장 비용이 절감됩니다 하드웨어 활용도를 높입니다. MongoDB를
의
일반 제약
적은 스토리지 엔진은 암시 적 스키마의 문제로 연결 스키마의 사용. 이러한 스키마는 스토리지 엔진에 의해 정의되지 않지만 대신 응용 프로그램 동작 및 기대에 따라 정의됩니다.
독립형 NoSQL 기술은 비정형 응용 프로그램의 높은 처리 성능을 위해 중요한 데이터 보호를 희생하기 때문에 ACID 표준을 충족하지 못합니다. NoSQL 데이터베이스에 ACID를 적용하는 것은 어렵지 않지만 어느 정도까지는 데이터베이스가 느리고 유연하지 않게 만듭니다. "대부분의 NoSQL 제한 사항은 이전 버전의 제한 사항을 극복 한 최신 버전 및 릴리스에서 최적화되었습니다."
나는이 대답을 받아 들였지만 다른 좋은 대답은 아래를 보라. @marcgg는 예를 들어 흥미로운 링크로 대답했습니다. –
링크가 더 이상 작동하지 않습니다 : ( – LittleBobbyTables
링크가 수정되었습니다 . –