sql >> Database teknologi >  >> RDS >> Sqlserver

Er det bedre at bruge en unik identifikator (GUID) eller en bigint til en identitetskolonne?

Det afhænger af, hvad du laver:

  • Hvis hastighed er den primære bekymring, så er en almindelig gammel int er nok stor nok.
  • Hvis du virkelig vil have mere end 2 milliarder (med en B;) ) poster, så brug bigint eller en sekventiel guide.
  • Hvis du har brug for nemt at kunne synkronisere med poster, der er oprettet eksternt, så Guid er virkelig fantastisk.

Opdater
Nogle yderligere (mindre indlysende) bemærkninger om guider:

  • De kan være hårde ved indekser, og det skærer til kernen af ​​databasens ydeevne
  • Du kan bruge sekventielle guider til at få noget af indekseringsydelsen tilbage, men opgiv noget af tilfældigheden, der blev brugt i punkt to.
  • Guids kan være svære at fejlfinde i hånden (where id='xxx-xxx-xxxxx' ), men du får også noget af det tilbage via sekventielle guider (where id='xxx-xxx' + '123' ).
  • Af samme grund kan Guids gøre ID-baserede sikkerhedsangreb sværere - men ikke umulige. (Du kan ikke bare skrive 'http://example.com?userid=xxxx' og forventer at få et resultat for en andens konto).


  1. db felt(GROUP_CONCAT) som array

  2. Deltag eliminering fungerer ikke i Oracle med underforespørgsler

  3. Brugerhenvisningssystem ved hjælp af PHP og MySQL

  4. Hvordan man sammenligner grupper af tupler i sql