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

Ydeevneforskel mellem UUID, CHAR og VARCHAR i PostgreSql-tabel?

Brug uuid . PostgreSQL har den oprindelige type af en grund.

Den gemmer uuid internt som et 128-bit binært felt. Dine andre foreslåede muligheder gemmer den som hexadecimal, hvilket er meget ineffektivt i sammenligning.

Ikke kun det, men:

  • uuid udfører en simpel bytemæssig sortering til bestilling. text , char og varchar overveje sammenstillinger og lokaliteter, hvilket er useriøst for en uuid.

  • Der er kun én kanonisk repræsentation af en uuid . Det samme gælder ikke for tekst osv.; du skal overveje store versus små bogstaver hex, tilstedeværelse eller fravær af {...-...} s osv.

Der er bare ingen tvivl. Brug uuid .

Den eneste anden type, der giver nogen mening, er bytea , som i det mindste kan bruges til at gemme de 16 bytes af uuid direkte. Dette er, hvad jeg ville gøre, hvis jeg brugte systemer, der ikke kunne klare datatyper uden for det grundlæggende sæt, som en virkelig dum ORM af en slags.



  1. Oracle-visning kan ikke opdateres, råd om i stedet for triggere

  2. Sådan gemmer du manglende FLOAT-værdier med NULL i SQL

  3. Hibernate 4.3.5 ignorerer v$session.program-konfigurationsegenskaben

  4. Adgangskodegodkendelse mislykkedes fejl ved kørsel af laravel-migrering