관계형 DB(RDBMS) vs NoSQL
관계형 데이터베이스는 정형화된 데이터를 다루는데 유리하며 NoSQL 데이터베이스는 유연한 스키마와 확장성을 필요로 하는 데이터를 다루는데 유용
관계형 데이터베이스
- 표 형식 데이터를 저장하는 데이터베이스로 SQL 언어를 사용
- MySQL, PostgreSQL, 오라클, SQL Server
- 각 DB별로 특화된 SQL을 사용하며 스토리지 엔진으로는 InnoDB, MyISAM 존재
- 스키마를 사용하여 데이터 구조를 정의하고, 트랜잭션 처리, ACID 특성을 지원
- Mysql은 쿼리 캐시를 지원, PostgreSQL은 디스크 조각이 차지하는 영역을 회수할 수 있는 장치인 VACCUM이 특징
NoSQL 데이터베이스
- 유연한 스키마와 확장성을 가진 데이터베이스로 SQL을 사용하지 않음
- MongoDB, Redis
- Json 형식의 도큐먼트로 데이터를 저장하며, 키-값 데이터 모델을 기반으로 확장된 도큐먼트 기반의 데이터베이스
- ReplicaSet을 통한 이중화 지원, 샤딩을 통해 데이터베이스 분할 관리 가능
- JSON을 통해 데이터에 접근하고, 데이터의 조합함수를 사용하여 데이터를 추출, 조합 가능
스토리지 엔진
- InnoDB(Mysql의 기본 스토리지 엔진)은 대용량 데이터를 다루기 에 좋고, 트랜잭션 처리 및 대용량 처리에 강점을 가지며, ReplicaSet을 통해 이중화를 지원. 행 수준의 잠금 제공
- MyISAM은 테이블 수준의 잠금을 제공하고 행, 인덱스 조회 캐싱을 통해 빠른 조회를 지원
- WiredTiger 엔진은 LSMTree(로그기반트리)를 사용하여 읽기 < 저장 성능 향상. 압축, 저널링, 체크포인트를 통한 데이터 안정성 및 복구 기능 제공
REF
각 DB별로 특화된 SQL"을을" 오타가 있어요!
좋은 정리네요!