관계형 데이터베이스
: 행과 열을 가지는 표 형식 데이터를 저장하는 형태. SQL을 써서 조작함
MySQL, PostgreSQL, 오라클, SQL Server, MSSQL
MySQL
: 대부분의 운영체제와 호환되며 현재 가장 많이 사용하는 데이터베이스
대용량 데이터베이스를 위해 설계되어 있다.
스토리지 엔진: 데이터베이스의 심장과도 같은 역할
스토리지 엔진 위에 있는 커넥터 API 및 서비스 계층을 통해 MySQL 데이터베이스와 쉽게 상호작용 가능
MySQL은 쿼리 캐시를 지원 -> 입력된 쿼리 문에 대한 전체 결과 집합을 저장함
=> 사용자가 작성한 쿼리가 캐시에 있는 쿼리와 동일하면 서버는 구문 분석, 최적화 및 실행을 건너뛰고 캐시의 출력만 표시함
MySQL 다음으로 개발자들이 선호하는 데이터베이스 기술
VACUUM: 디스크 조각이 차지하는 영역을 회수할 수 있는 장치
NoSQL(Not only SQL)이라는 슬로건에서 생겨난 데이터베이스
SQL을 사용하지 않는 데이터베이스를 말함
(MongoDB, redis 등)
MongoDB
- JSON을 통해 데이터에 접근 가능
- Binary JSON 형태(BSON)로 데이터 저장
- 와이어드타이거 엔진이 기본 스토리지 엔진
- 키-값 데이터 모델에서 확장된 도큐먼트 기반
- 확장성이 뛰어남
- 빅데이터 저장 시 성능이 좋음
- 고가용성과 샤딩, 레플리카셋 지원
- 스키마를 정해놓지 않고 데이터 삽입 가능-> 다양한 도메인의 데이터베이스를 기반으로 분석하거나 로깅등을 구현할 때 강점을 보임
redis
: 인메모리 데이터베이스이자 키-값 데이터 모델 기반의 데이터베이스
- 기본적인 데이터 타입: String
- 최대 512MB 저장
- 셋, 해시 지원
pub/sub 기능을 통해 채팅 시스템, 다른 데이터베이스 앞단에 두어 사용하는 캐싱 계층, 키-값이 필요한 세션 정보 관리, 정렬된 셋 자료구조를 이용한 실시간 순위표 서비스에 사용