본문 바로가기

Backend/PostgreSQL and TypeORM

JSONB 타입이 column에 존재한다

PostgreSQL 9.4부터 JSONB 타입이 추가되었다고 한다. (2014년경) 

JSON  JSONB
입력받은 텍스트값을 DB에 그대로 저장한다.  그대로 저장 X
JSONB와 반대  문자열 사이의 공백도 제거 + KEY 순서 보장 X 
JSONB와 반대  JSONB가 JSON보다 좀 더 많은 디스크를 사용한다(Always는 아님)
Indexing 불가능  Indexing 가능

※ 특별한 사유가 없으면 JSONB를 사용하라고 하는데 아직은 잘 와닿지 않는다 ㅜ 

 

Data Insert시 

JSON > JSONB 

Data 처리 

JSON < JSONB (바이너리 형태) 

 

예를 들어 member 라는 테이블이 존재할때 JSONB로 정의된 'signup_info'라는 컬럼이 있다고 하자. 

JSONB 타입에 JSON을 보통 다루듯이 JSON 객체를 가진 배열을 넣는다. 

 

DB에서 검색할때 아래와 같은 식으로 검색해야 한다. 

SELECT * from member where meta @> '[{"name":"홍길동"}]';

 

참고자료

https://blog.outsider.ne.kr/1194

 

PostgreSQL의 JSONB 데이터 타입의 배열에서 특정 값 조회하기 :: Outsider's Dev Story

작년에 [PostgreSQL의 JSON 데이터 타입 오퍼레이터](https://blog.outsider.ne.kr/1061)라는 글에서 [PostgreSQL](http://www.postgresql.org/) 데이터베이스의 [JSON 데이터타입](http://www.postgresql.org/do...

blog.outsider.ne.kr

https://americanopeople.tistory.com/300