jsonb

jsonb
jsonb 데이터를 분해된 바이너리 형식으로 저장하며, ASCII/UTF-8 문자열이 아닌 바이너리 코드로 저장합니다. 이렇게 하면 변환 오버헤드가 추가되어 입력 속도가 약간 느려지지만, 다시 복구할 필요가 없으므로 처리 속도는 훨씬 빨라집니다.
jsonb 인덱싱도 지원하므로 상당한 이점이 될 수 있습니다.
jsonb '은 공백을 보존하지 않고, 객체 키의 순서를 보존하지 않으며, 중복된 객체 키를 유지하지 않습니다. 입력에 중복 키가 지정되어 있으면 마지막 값만 유지됩니다.
객체 키의 순서에 대한 레거시 가정과 같은 매우 특수한 요구 사항이 없는 한 애플리케이션은 ' JSON 데이터를 ' jsonb'로 저장하는 것이 좋습니다.
RFC 7159는 ' JSON 문자열에 ' \uXXXX'로 표시되는 유니코드 이스케이프 시퀀스를 포함할 수 있도록 허용합니다. ' jsonb '의 입력 함수는 데이터베이스 인코딩이 UTF8 아닌 경우 ASCII가 아닌 문자( U+007F 이상)에 대한 유니코드 이스케이프를 허용하지 않습니다. jsonb ' \u0000'를 거부합니다. 그 이유는 ' \u0000 '이 PostgreSQL's 텍스트 유형으로 표현될 수 없기 때문입니다. jsonb '은 유니코드 기본 다국어 평면 외부의 문자를 지정하기 위해 유니코드 대리 쌍을 사용하는 모든 것이 올바르다고 주장합니다. 유효한 유니코드 이스케이프는 저장할 수 있도록 동등한 ASCII 또는 UTF8 문자로 변환되며, 여기에는 대리 쌍을 단일 문자로 접는 것도 포함됩니다.
텍스트 ' JSON 입력을 ' jsonb'로 변환할 때 RFC 7159에서 설명하는 기본 유형은 기본 PostgreSQL 유형에 효과적으로 매핑됩니다. jsonb PostgreSQL 숫자 데이터 유형 범위를 벗어나는 숫자를 거부합니다.