PostgreSQL에는 JSON을 다루는 더 나은 자료형인 JSONB(JSON Binary) 자료형이 있습니다. 특별한 이유가 없다면 대개 JSONB 사용을 권장합니다.
▼ 표 5-1 JSONB와 JSON 칼럼 비교
|
특성 |
JSONB |
JSON |
|
저장 형식 |
바이너리 형식 |
텍스트 형식 |
|
데이터 구조 |
공백 제거, 키 순서 변경 |
원본 그대로 유지 |
|
처리 속도 |
빠름 |
상대적으로 느림 |
|
인덱싱 |
지원 |
미지원 |
|
쓰기 비용 |
상대적으로 높음 |
낮음 |
|
읽기 비용 |
낮음 |
높음(읽을 때마다 JSON 문자열 파싱) |
|
공간 효율성 |
높음 |
상대적으로 낮음 |
|
중복 키 |
마지막 키로 대체 |
허용 |
|
사용 사례 |
빠른 질의 및 데이터 처리가 필요할 때 |
원본 데이터 유지가 중요할 때 |
그러나 우리는 약속 잡기 프로젝트 개발 단계에서는 SQLite 3를 사용하므로 JSONB를 사용하지 못합니다. 이 경우 SQLAlchemy의 열 자료형 변형 지원을 사용하면 PostgreSQL에서는 JSONB를, 그 외에는 JSON을 사용하도록 지정하면 됩니다.