sql >> Databasteknik >  >> RDS >> PostgreSQL

Vilken datatyp att välja json eller jsonb eller text

Förutsatt att du pratar om faktisk, strikt JSON (utan konstigheter som nycklar utan citat)...

json skiljer sig inte så mycket från text . Det gör inte mycket förutom att validera JSON .

jsonb är en annan best jämfört med dessa två:det är en fullfjädrad datastruktur med sitt eget interna format som har mycket fler funktioner tillgängliga i sökningar. Till exempel json har ingen tillämplig = (jämställdhetsoperatör). jsonb har. (text har också, även om det är semantiskt annorlunda.)

Det är mycket mer förnuftigt att indexera, men det måste omvandlas fram och tillbaka under läsning och skrivning.

Med tanke på det, jsonb ser inte ut som ett bra val här.

... Så det finns bara ett beslut kvar att fatta:

Vill du säkerställa att din databas endast innehåller giltiga JSON-värden i din kolumn? På databasnivå? Eller litar du på att varje klient i den databasen (vanligtvis serverappar) endast tillhandahåller giltig data?

json är ett relativt säkert val oavsett. Använder text teoretiskt sett kan det förbättra prestandan med en försumbar marginal på grund av frånvaro av validering, men du får bara specifika siffror genom benchmarking. Men det skulle inte ha det skyddet mot icke-JSON-värden, och en oavsiktlig bugg i klienten kan gå obemärkt förbi. Testa ansvarsfullt!




  1. Ersätter System.Data.OracleClient till Oracle.DataAccess (ODP.NET)

  2. Mysqli hämta array n:te raden

  3. Ta bort data från en MySQL-databas

  4. Ta bort mysql-poster fungerar inte i codeIgniter