PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Que tipo de dados escolher json ou jsonb ou texto


Supondo que você esteja falando sobre JSON real e estrito (sem peculiaridades, como chaves sem aspas) ...

json não é muito diferente de text . Não faz muito além de validar JSON .

jsonb é uma fera diferente em relação a esses dois:é uma estrutura de dados completa com seu próprio formato interno que possui muito mais operações disponíveis nas pesquisas. Por exemplo json não tem = aplicável (operador de igualdade). jsonb tem. (text tem também, embora seja semanticamente diferente.)

É muito mais sensato indexar, mas precisa ser transformado para frente e para trás durante as leituras e gravações.

Dado isso, jsonb não parece uma boa escolha aqui.

... Portanto, resta apenas uma decisão a ser tomada:

Você deseja garantir que seu banco de dados contenha apenas valores JSON válidos em sua coluna? No nível do banco de dados? Ou você confia em cada cliente desse banco de dados (aplicativos de servidor, normalmente) para fornecer apenas dados válidos?

json é uma escolha relativamente segura de qualquer maneira. Usando text teoricamente poderia melhorar o desempenho por uma margem insignificante devido à ausência de validação, mas você só obterá números específicos por benchmarking. Mas não teria essa proteção contra valores não JSON, e um bug acidental no cliente poderia passar despercebido. Teste com responsabilidade!