PostgreSQL의 jsonb
열 유형을 주로 REST-ful JSON API로 사용되는 새로운 백엔드 프로젝트에 사용하려고합니다. PostgreSQL의 jsonb
은 백엔드에서 변환 할 필요없이 JSON 객체를 제공하므로이 프로젝트에 적합 할 것입니다.jsonb 및 기본/외래 키 : PostgreSQL에서 성능이 더 좋습니까?
그러나 키가 추가 될 때 jsonb
데이터 형식이 느려지고 내 스키마에 기본 키와 외래 키 참조가 필요할 것이라고 읽었습니다.
기본 키/외래 키를 표준 관계형 데이터베이스 방식으로 자신의 열에 넣은 다음 나머지 데이터에 대해 jsonb
열을 사용하면 유익한 지 궁금 해서요. 또는 아래로)? 한마디로
, 것 : 자주 외래 키를 찾는 특히
table car(data jsonb)
:
table car(id int, manufacturer_id int, data jsonb)
보다 더 좋거나 더 나쁜 수행?
퍼포먼스 또는 스키마 관점에서 첫 번째 단점이 있습니까? PRIMARY KEY
또는 FOREIGN KEY
제약 해야에 참여
왜 'jsonb'를 사용하고 싶습니까? 당신이 다소 고정 된 스키마를 가지고 있고 JSON으로 행을 변환하는 것이 당신이 그것에 대해 걱정할 필요가 없을만큼 빠르다고 생각됩니다. –
좋은 질문 : 필자의 스키마가 필요로하는 관계에 대해 잘 알고 있지만이 시점에서는 각 테이블에 필요한 정보를 구체적으로 이해하지 못하고 매번 데이터베이스 마이그레이션을 수행 할 수 있습니다 나는 jsonb를 사용하여 좋은 성능과 물건을 빠르게 추가하는 쉬운 방법을 결합 할 수 있다고 생각합니다. 나중에 언젠가는 데이터를 더 구체적으로 이해하고 나면 좋은 관계형 설정으로 돌아갈 수 있습니다. 그러나 그것은 질문의 요점 옆에 있습니다. 즉, 한 사람이 다른 사람보다 더 잘 수행 할 수 있습니까? –
하지만 JSON을 다시 작성하기 위해서는 어쨌든 많은 마이그레이션 작업을해야 할 것입니다. 몇 가지 ALTER TABLE을 여기 저기에 두어 두려워해서는 안되며, 끊임없이 변화하는 스키마를 추적하기 위해 모든 데이터와 코드를 다시 작성해야합니다. 더 무섭다. 질문에 대한 답변을 얻으려면 먼저 올바른 질문을해야합니다. 나는 당신이 데이터를 훔치기 시작하기 전에 당신의 데이터가 어떻게 생겼는지 알아낼 필요가 있다고 생각한다. 만약 당신이 그것을 생각하고 다시 돌아가서 당신이 거의 틀린 데이터베이스를 재 설계한다면, 그것은 일어나지 않을 것입니다. –