sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvilken datatype skal du vælge json eller jsonb eller tekst

Hvis du antager, at du taler om faktisk, streng JSON (uden særheder såsom nøgler uden anførselstegn)...

json er ikke for forskellig fra text . Det gør ikke meget ud over at validere JSON .

jsonb er et anderledes udyr sammenlignet med disse to:det er en fuldgyldig datastruktur med sit eget interne format, der har meget flere funktioner tilgængelige i søgninger. For eksempel json har ingen relevant = (ligestillingsoperatør). jsonb har. (text har også, selvom det er semantisk anderledes.)

Det er meget mere fornuftigt at indeksere, men det skal transformeres frem og tilbage under læsning og skrivning.

Givet det, jsonb ser ikke ud som et fornuftigt valg her.

... Så der er kun én beslutning tilbage:

Vil du sikre dig, at din database kun indeholder gyldige JSON-værdier i din kolonne? På databaseniveau? Eller stoler du på, at hver klient i den database (typisk serverapps) kun leverer gyldige data?

json er et relativt sikkert valg på begge måder. Brug af text teoretisk kunne forbedre ydeevnen med en ubetydelig margin på grund af manglende validering, men du får kun specifikke tal ved benchmarking. Men det ville ikke have den beskyttelse mod ikke-JSON-værdier, og en utilsigtet fejl i klienten kunne forblive ubemærket. Test ansvarligt!




  1. Sådan angiver du brugerdefinerede typer ved hjælp af Postgres information_schema

  2. PHP PDO bindParam() og MySQL BIT

  3. mysql ekstrakt år fra dato format

  4. Vælg databasenavnet i iSQL plus