Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

PostgreSQL Outros métodos de indexação JSON

As funções JSON do PostgreSQL permitem a manipulação e a consulta de tipos de dados JSON, possibilitando operações como extração, transformação e agregação. Essas funções são essenciais para lidar com dados JSON armazenados em bancos de dados PostgreSQL, aumentando a flexibilidade e os recursos de processamento de dados. As principais funções JSON incluem aquelas para extração de valores, atualização de conteúdo JSON e agregação de dados JSON.

Exemplos

1. Extração de um valor JSONB

SELECT jsonb_extract_path_text(info, 'name') AS name
FROM users;

Neste exemplo, você recupera o valor de texto associado à chave name da coluna JSONB info na tabela users. Observe que jsonb_extract_path_text é usado para extrair valores de texto especificamente dos tipos de dados jsonb, o que geralmente é recomendado para melhorar o desempenho.

2. Atualização de um valor JSONB

UPDATE users
SET info = jsonb_set(info, '{age}', '30', false)
WHERE id = 1;

Aqui, a função jsonb_set atualiza a chave age na coluna JSONB info para 30 para o usuário com id = 1.

3. Agregação de dados JSONB

SELECT json_agg(info) AS all_info
FROM users
WHERE info ->> 'active' = 'true';

Este exemplo agrega todos os objetos JSONB de info para usuários ativos em uma única matriz JSON usando json_agg.

Diferença entre JSON e JSONB

JSON JSONB JSON armazena dados em um formato de texto e preserva a ordem das chaves, enquanto armazena dados em um formato binário, permitindo uma indexação eficiente e um desempenho de consulta mais rápido. é geralmente preferido para a maioria dos casos de uso, especialmente aqueles que envolvem atualizações e operações de pesquisa. JSONB JSONB

Dicas e práticas recomendadas

  • Aproveite o JSONB para indexação. Use JSONB em vez de JSON para obter melhor desempenho com recursos de indexação, como o uso de índices GIN em caminhos JSONB.
  • Use as funções apropriadas. Selecione funções JSON específicas, como jsonb_extract_path_text, jsonb_array_elements_text ou jsonb_pretty, dependendo da estrutura de dados e das necessidades que você tiver.
  • Manter a consistência dos dados. Valide e limpe regularmente seus dados JSON para garantir a consistência e evitar erros na execução da consulta. Considere o uso de ferramentas como pg_valid_json para validação.
  • Indexar campos estratégicos. Crie índices em campos JSONB frequentemente consultados para melhorar o desempenho da consulta, especialmente em grandes conjuntos de dados. Por exemplo, use CREATE INDEX ON table_name USING GIN (jsonb_column jsonb_path_ops); para indexar um caminho JSONB.

Ao entender as diferenças entre JSON e JSONB e utilizar as funções e estratégias de indexação apropriadas, você pode otimizar significativamente o desempenho e a flexibilidade do manuseio de dados JSON no PostgreSQL.