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
'Backend > PostgreSQL and TypeORM' 카테고리의 다른 글
FindOneOptions 안의 where 그리고 relations (0) | 2023.08.22 |
---|---|
회원가입때 받을 개인정보 컬럼이 달라질 것을 고려하기 위해 jsonb 사용한다? (0) | 2023.08.21 |
relation 그리고 연관관계 잡기 (0) | 2023.08.21 |
fidOne()과 FindOneOptions 객체 (0) | 2023.08.18 |
Module '"nestjs-typeorm-paginate"' has no exported member 'IPaginationOptions'. (0) | 2023.08.17 |