JSON vs JSONB w PostgreSQL

W dużym uproszczeniu – JSON to tekst a JSONB to kod binarny.

JSON

W tym formacie dane są zapisywane za pomocą zwykłego tekstu – co sprawia, że zapis jest szybki. Lecz operacje na strukturze JSON są wolne ponieważ wymagają uprzedniego przetworzenia/dekompozycji.

JSONB

W tym formacie dane zapisywane są za pomocą kodu binarnego – co sprawia, że zapis jest wolny. Lecz dzięki uprzedniemu przetworzeniu/dekompozycji operacje na strukturze JSON są bardzo szybkie.

Uwaga!!!

Przetworzenie/dekompozycja która się odbywa przy zapisie do bazy danych powoduje:
– redukcję duplikatów (jeśli jest więcej niż jeden klucz o tej samej nazwie, tylko ostatni zostanie zachowany)
– utracenie kolejności kluczy (jeśli mieliśmy klucze „name”, „surname”, to nie koniecznie otrzymamy je w tej samej kolejności przy odczycie)

Format JSON pozwala na powyższe, z racji tego, że jest zapisywany jako zwykły tekst.

Warto zajrzeć

1. https://www.postgresql.org/docs/current/datatype-json.html

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *