sql >> Databáze >  >> RDS >> Mysql

Rozdíly mezi INT a UUID v MySQL

UUID vrátí univerzální jedinečný identifikátor (doufejme, že také jedinečný, pokud je importován také do jiné DB).

Citace z dokumentu MySQL (důraz):

Na druhou stranu jednoduše INT primární klíč ID (např. AUTO_INCREMENT ) vrátí jedinečné celé číslo pro konkrétní DB a DB tabulku, která však není univerzálně jedinečná (takže při importu do jiné DB je pravděpodobné, že dojde ke konfliktům primárního klíče).

Pokud jde o výkon, při použití auto-increment by neměl být žádný znatelný rozdíl přes UUID . Většina příspěvků (včetně některých od autorů tohoto webu) se tak uvádí. Samozřejmě UUID může zabrat trochu více času (a prostoru), ale ve většině (ne-li ve všech) případech to není překážka výkonu. Sloupec jako Primary Key by měly být obě možnosti rovnocenné výkonu. Viz odkazy níže:

  1. Komu UUID nebo ne na UUID ?
  2. Mýty, GUID vs Autoincrement
  3. Výkon:UUID vs auto-increment v cakephp-mysql
  4. UUID výkon v MySQL?
  5. Primární klíče:ID s versus GUID s (kódování hororu)

(UUID vs auto-increment výsledky výkonu, upravené podle mýtů, GUID vs Autoincrement )

UUID pro / proti (převzato z Primární klíče:ID s versus GUID s )

Poznámka

Pečlivě bych si přečetl zmíněné reference a rozhodl se, zda použít UUID nebo ne v závislosti na mém případu použití. To znamená, že v mnoha případech UUID s by bylo skutečně výhodnější. Například lze vygenerovat UUID s bez použití/přístupu k databázi vůbec, nebo dokonce použití UUID s, které byly předem vypočteny a/nebo uloženy někde jinde. Navíc můžete snadno zobecnit/aktualizovat schéma databáze a/nebo schéma klastrování, aniž byste se museli starat o ID lámání a vyvolávání konfliktů.

Pokud jde o možné kolize, například pomocí v4 UUIDS (náhodné), pravděpodobnost nalezení duplikátu v rámci 103 bilionů UUID verze 4 je jedna z miliardy.



  1. Jak nainstalovat drahokam pg PostgreSQL na Ubuntu?

  2. pymssql.OperationalError:Chybová zpráva DB-Lib 20009, závažnost 9

  3. Předejte PHP Array přes jQuery Ajax

  4. Mysql:Vyberte řádky z tabulky, které nejsou v jiné