jsonb @postgresql

ayokinya·2021년 1월 10일
0

PostgreSQL 9.4부터 새 컬럼 타입인 jsonb가 도입됐다.
프로젝트를 하면서 처음 접해본 jsonb를 정리한다.

json vs jsonb

json은 텍스트 입력 그대로를 저장한다. json 타입으로 저장된 데이터는 인덱싱을 지원하지는 않지만

jsonb는 입력값을 바이너리 형태로 저장한다. (그래서 쓰기 비용이 크다.)
인덱싱이 가능하고, 데이터 파싱 비용이 들지 않기 때문에 읽기 비용이 적다는 이점이 있다. json과 달리 json 문자열 사이의 공백도 제거해주고, value 값은 적당한 형변환을 하며, 그 key 이름이 중복될 경우는 마지막 것을 사용하며, key는 정렬된다. (그래서 KEY 순서는 보장되지 않는다.)

jsonb에서만 쓸 수 있는 자료형 인덱스도 있다.

그냥 로그를 찍거나 쿼리를 많이 사용하지 않을 때에는 json,
그 외 대부분의 경우에는 jsonb를 쓰는 게 좋다고 한다.

그래서 jsonb 타입을 쓰고 있는데, json을 써보지 않아서 이 차이가 실감이 나지는 않는다.

[자료 출처]
https://americanopeople.tistory.com/300
https://postgresql.kr/blog/postgresql_jsonb.html

profile
42 서울 교육생

0개의 댓글