728x90
💡
PostgreSQL은 JSON과 JSONB 두 가지 데이터 타입을 제공한다.
두 타입을 통해 데이터베이스에 JSON 데이터를 효율적으로 저장하고 처리할 수 있다.
PostgreSQL에서의 JSON과 JSONB 데이터 타입의 차이점과 각각의 장단점을 비교해 보자.
저장 형식
JSON 타입
- 원본 JSON 형식의 텍스트로 데이터를 저장한다.
- 이 때문에 저장 공간이 더 크게 필요하며 처리 속도가 JSONB 타입 대비 느릴 수 있다.
JSONB 타입
- 바이너리 형식으로 JSON 데이터를 저장한다.
- 바이너리 형식으로 저장한 덕분에 데이터 저장 공간을 절약하고 쿼리 속도를 높일 수 있다.
데이터 구조
JSON 타입
- 원본 JSON 문자열의 공백과 순서를 그대로 유지한다.
JSONB 타입
- 공백이 제거되고, 객체의 키 순서가 변경될 수 있다.
- 이 때문에 데이터의 정확한 텍스트 형식을 유지해야 하는 경우 JSON 타입이 더 적합하다.
처리 속도 및 인덱싱
JSON 타입
- 원시 텍스트 형식으로 저장되기 때문에 쿼리 등 작업을 할 때마다 JSON 파싱이 필요하다.
- 이는 JSONB 대비 처리 속도를 느리게 한다.
JSONB 타입
- 바이너리 형식으로 저장되어 더 빠른 처리 속도를 제공한다.
- 자동 B-tree 인덱싱 기능 등 추가적인 기능적 이점도 가지고 있어 전적으로 JSON 타입 대비 성능이 좋다.
연산자 및 함수
JSON 타입
- 추가적인 연산자와 기능을 포함해 더 강력한 JSON 데이터 처리를 가능하게 한다.
JSONB 타입
- SON 타입에 비해 몇 가지 기능이 제한적일 수 있으나, 일반적인 JSON 작업에 사용되는 다양한 연산자와 함수를 제공한다.
그럼 어떤 상황에 무슨 타입을 쓰는 것이 좋을까?
- JSON 타입의 경우 JSON 데이터 구조의 정확한 표현이 중요하거나 빈번한 쓰기 작업이 주를 이룰 때 사용하는 것이 좋다.
- JSONB 타입의 경우 쿼리 및 처리 성능, 인덱싱 등이 더 중요한 곳에 사용하는 것이 좋다.
참고
뤼튼
728x90
'넓고 얕은 데이터베이스 지식' 카테고리의 다른 글
MySQL Replication : DB 서버 이중화(master - slave)하기 (1) | 2024.01.10 |
---|---|
MySQL VS PostgreSQL JSON 데이터 INSERT & 조회 성능 및 장단점 비교하기 (0) | 2023.08.23 |
EAV 모델에 대해 간단히 알아보자 (0) | 2023.07.23 |
Spring Boot에서 H2 DB 3 가지 모드로 사용하는 방법 정리 (0) | 2023.06.20 |
커넥션 풀(Connection Pool) 1분 요약 (0) | 2023.03.06 |