본문 바로가기
나만의 꿀팁

[Postgresql] JSON, JSONb, simple-json 차이점

by 욧닭 2023. 5. 18.
반응형

PostgreSQL에는 JSON 데이터를 저장할 수 있는 데이터 타입으로 JSON과 JSONB, 그리고 PostgreSQL에 내장되어 있지는 않지만 확장 기능을 설치하여 사용할 수 있는 Simple-json 타입이 있습니다.

가장 기본적인 JSON 타입은 입력된 JSON 문자열을 그대로 DB에 저장합니다. 이것은 구문 분석을 거치지 않기 때문에 입력 데이터의 유효성을 검사하지 않습니다. 반면 JSONB 타입은 입력된 JSON 문자열을 구문 분석하고 내부적으로는 바이너리 형태로 저장합니다. 이 같은 처리를 통해 저장 공간은 좀 더 많이 필요하지만 검색 속도가 더 빠르고 인덱싱이 가능합니다.


또한, Simple-json 타입은 JSON 형태로 데이터를 저장하지만 PostgreSQL에서 기본적으로 제공하는 데이터 타입은 아닙니다. 테이블에서 행 병합이 가능하다는 장점이 있어 사용자들이 편리하게 사용할 수 있습니다. 이 데이터 타입을 사용하기 위해서는 PostgreSQL 확장 기능을 설치해야 합니다.


JSON과 JSONB의 차이점은 다음과 같이 정리할 수 있습니다.

 

JSON : 입력된 데이터를 바이너리 형태로 변환하지 않고 그대로 저장합니다. 사용되는 저장 공간이 적습니다.
JSONB : 입력된 데이터를 바이너리 형태로 변환하고 저장합니다. 이에 따라 JSON보다 사용되는 저장 공간의 크기가 크지만, 검색 속도 가 빠르기 때문에 더욱 빠른 데이터 처리가 가능하며, 인덱싱이 가능합니다.

따라서, 데이터의 크기와 검색 속도, 그리고 인덱싱의 필요성 등을 고려하여 적절한 데이터 타입을 선택하는 것이 중요합니다.


https://www.postgresql.org/docs/current/datatype-json.html

 

8.14. JSON Types

8.14. JSON Types 8.14.1. JSON Input and Output Syntax 8.14.2. Designing JSON Documents 8.14.3. jsonb Containment and Existence 8.14.4. jsonb Indexing …

www.postgresql.org

 

반응형

댓글