sql >> Database >  >> RDS >> PostgreSQL

Uitleg van JSONB geïntroduceerd door PostgreSQL

Ten eerste, hstore is een contrib-module, waarmee u alleen sleutel => waardeparen kunt opslaan, waarbij sleutels en waarden alleen text kunnen zijn s (waarden kunnen echter sql NULL zijn s ook).

Beide json &jsonb stelt u in staat een geldige JSON waarde op te slaan (gedefinieerd in de specificaties).

vb. dit zijn geldige JSON-representaties:null , true , [1,false,"string",{"foo":"bar"}] , {"foo":"bar","baz":[null]} - hstore is slechts een kleine subset vergeleken met wat JSON kan (maar als je alleen deze subset nodig hebt, is het prima).

Het enige verschil tussen json &jsonb is hun opslag:

  • json wordt opgeslagen in platte tekst, terwijl
  • jsonb wordt opgeslagen in een binaire weergave

Dit heeft 3 grote gevolgen:

  • jsonb kost gewoonlijk meer schijfruimte om op te slaan dan json (soms niet)
  • jsonb kost meer tijd om te bouwen vanaf de invoerrepresentatie dan json
  • json operaties duren aanzienlijk meer tijd dan jsonb (&parseren moet ook worden gedaan elke keer dat u een bewerking uitvoert op een json getypte waarde)

Wanneer jsonb beschikbaar zal zijn met een stabiele release, er zullen twee belangrijke gebruiksscenario's zijn, wanneer u er gemakkelijk tussen kunt kiezen:

  1. Als u alleen met de JSON-representatie in uw applicatie werkt, wordt PostgreSQL alleen gebruikt om deze representatie op te slaan en op te halen, u moet json gebruiken .
  2. Als u veel bewerkingen uitvoert op de JSON-waarde in PostgreSQL, of indexering op een JSON-veld gebruikt, moet u jsonb gebruiken .


  1. Meet u de prestaties van SQL Server met deze statistieken?

  2. MySQL-standaarddatabase

  3. Onjuiste syntaxis in de buurt van ')' die opgeslagen procedure aanroept met GETDATE

  4. Hoe DAYOFMONTH() werkt in MariaDB