2016-06-21 3 views
0

구성 데이터를 단일 jsonb 필드에 저장하거나 각 속성 키의 필드 전용으로 사용하는 것이 더 좋습니다. 예를 들어PostgreSQL jsonb?

이 JSON 데이터 : 나는 수천 명의 사용자가있는 경우

{ 
    notifications: { 
    check: { 
     enabled: true, 
     In_delimiters: true, 
     Out_delimiters : false 
    }, 
    battery_low: { 
     enabled: true, 
     battery_power: 0.70 
    }, 
    gps_on: { 
     enabled: true 
    }, 
    gps_off: { 
     enabled: true 
    }, 
    speed_exceeded: { 
     enabled: true, 
     speed: 100 
    } 
    } 
} 

, 각 속성 키는 내가 각 속성에 대한 필드를 바치고 경우 DB의 크기보다 더 큰 성장하고, 각 행에서 중복됩니다 저장 가치 만.

이 경우 어떤 조언이 필요합니까? jsonb와 함께 압축을 사용합니까? 또는 각 재산에 대한 자료를 바치고 있습니까?

+0

json은 구조화되지 않은 데이터에 유용합니다. 그렇지 않으면 사용하지 마십시오. –

답변

2

데이터베이스 크기를 먼저 고려하지 마십시오. 스토리지는 요즘 비교적 저렴합니다. 구조 만들기, 항목 항목에 따라 다릅니다

  1. 경우

    사용 json 또는 jsonb은 하드 값의 대부분 처리는 데이터베이스 내부가 아닌 관계형 데이터 모델

  2. 을 마련하는

그렇지 않으면 관계형 데이터 모델을 사용하십시오. 관계형 데이터베이스가 가장 좋습니다.

데이터베이스 내부의 데이터를 전혀 처리하지 않고 저장소를 저장하는 것이 중요한 경우 행 크기가 2KB를 초과하면 –을 사용하면 자동으로 압축됩니다. json은 보존해야 할 오브젝트 키 순서, 공백 또는 중복 오브젝트 키가있는 경우 이동하는 방법이기도합니다.

쿼리에 데이터를 사용해야하는 경우 반드시 jsonb을 사용하십시오. 운영자가 더 빠르며 색인을 사용할 수 있습니다.

+0

데이터베이스 내부의 값을 _ 처리 할 때 정확히 무엇을 의미합니까? – dbf

+0

SQL 쿼리에서 JSON 함수를 사용하십시오. JSON 열에 인덱스를 사용하십시오. 기본적으로 JSON 값을 저장하고 검색하는 것 이상을 수행하십시오. –

관련 문제