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

Nahradit funkci UUID verze 1 MySQL?

Vaše obava, že „většina UUID je k ničemu a plýtvá místem“, souvisí s velikostí datového typu. Nikdy nebudete moci mít ve své databázi tolik položek, kolik umožňuje teoretický limit 16 bajtů.

Ve skutečnosti je UUID V1 vhodnější než V4, pokud používáte UUID pouze jako ID tabulky – protože používá MAC adresu a časové razítko, aby se zabránilo kolizím. Ve V4 takový mechanismus neexistuje, i když se prakticky nemusíte příliš bát ani kolize :) Pokud potřebujete, aby vaše UUID bylo nepředvídatelné, měli byste místo V1 použít UUID V4.

Všimněte si také, že skládání například 4x4 bajtových náhodných hodnot nemusí být totéž jako vytváření 16 bajtových náhodných hodnot. Jako vždy u kryptoměn a náhodnosti:Nedoporučoval bych implementovat vaši vlastní rutinu UUID::V4.

Pokud je na vašem počítači nainstalován, můžete použít php-uuid balíček.

Příklad kódu (který lze ve vaší aplikaci použít tak, jak je) naleznete zde:http://rommelsantor.com/clog/2012/02/23/generate-uuid-in-php/

Použijte jej takto:

$uuid = uuid_create(1);

Uživatelé, kteří jsou schopni instalovat balíčky na svůj webový server, mohou nainstalovat požadovaný balíček, jako:(zde pro ubuntu)

apt-get install php5-dev uuid-dev
pecl install uuid


  1. Různé způsoby použití funkce data SQL CONVERT

  2. MySQL příliš dlouhé nastavení zkrácení/chyby varchar

  3. Tabulka 'performance_schema.session_variables' neexistuje

  4. Můžete rozdělit/rozložit pole v dotazu MySQL?