sql >> Databáze >  >> RDS >> Sqlserver

Je lepší použít pro sloupec identity jedinečný identifikátor (GUID) nebo bigint?

To záleží na tom, co děláte:

  • Pokud je hlavním zájmem rychlost, pak obyčejný starý int je pravděpodobně dost velký.
  • Pokud opravdu budete mít více než 2 miliardy (s B;) ) záznamů, použijte bigint nebo sekvenčního průvodce.
  • Pokud potřebujete mít možnost snadno synchronizovat se vzdáleně vytvořenými záznamy, pak Guid je opravdu skvělý.

Aktualizovat
Některé další (méně zřejmé) poznámky k průvodcům:

  • Mohou být náročné na indexy, a to snižuje jádro výkonu databáze
  • Můžete použít sekvenční průvodce, abyste získali zpět část výkonu indexování, ale vzdát se části náhodnosti použité v bodě dva.
  • Návody může být obtížné ladit ručně (where id='xxx-xxx-xxxxx' ), ale část z toho získáte zpět také prostřednictvím sekvenčních průvodců (where id='xxx-xxx' + '123' ).
  • Ze stejného důvodu mohou průvodci ztížit bezpečnostní útoky založené na ID, ale ne nemožné. (Nemůžete jednoduše zadat 'http://example.com?userid=xxxx' a očekávat výsledek pro účet někoho jiného).


  1. Jak zjistit, zda dotaz selže v Laravel 4?

  2. Transakce Codeigniter

  3. Získat součin řádků (násobení)

  4. REAL datový typ v PLSQL