본문 바로가기
넓고 얕은 데이터베이스 지식

PostgreSQL의 JSON 데이터 저장 타입 JSON vs JSONB 비교하기

by 팡펑퐁 2023. 8. 22.
728x90
💡
PostgreSQL은 JSONJSONB 두 가지 데이터 타입을 제공한다.
두 타입을 통해 데이터베이스에 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