sql >> Database >  >> RDS >> Mysql

Vervanger voor de UUID versie 1-functie van MySQL?

Uw bezorgdheid dat "het grootste deel van de UUID nutteloos is en ruimte verspilt" is inherent aan de grootte van het gegevenstype. U zult nooit zoveel items in uw database kunnen hebben als de theoretische limiet van 16 bytes toestaat.

In feite is V1 UUID meer geschikt dan V4 als u de UUID alleen als tabel-ID gebruikt - omdat het MAC-adres en tijdstempel gebruikt om botsingen te voorkomen. In V4 is er geen dergelijk mechanisme, hoewel je je praktisch ook niet al te veel zorgen hoeft te maken over botsingen :)Je moet V4 UUID gebruiken in plaats van V1 als je wilt dat je UUID onvoorspelbaar is.

Houd er ook rekening mee dat het samenstellen van bijvoorbeeld willekeurige waarden van 4x4 bytes niet hetzelfde is als het maken van een willekeurige waarde van 16 bytes. Zoals altijd met crypto en willekeur:ik zou het afraden om uw eigen UUID::V4-routine te implementeren.

Indien geïnstalleerd op uw computer, kunt u gebruik maken van de php-uuid pakket.

Een voorbeeldcode (die als zodanig in uw toepassing kan worden gebruikt) vindt u hier:http://rommelsantor.com/clog/2012/02/23/generate-uuid-in-php/

Gebruik het als volgt:

$uuid = uuid_create(1);

Gebruikers die pakketten op hun webserver kunnen installeren, kunnen het vereiste pakket installeren, zoals:(hier voor ubuntu)

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


  1. Beste databaseveldtype voor een URL

  2. Een gegevensmodel voor dierenverzorging

  3. SQL ORDER OP meerdere kolommen

  4. Zet postgres-datumweergave om in ISO 8601-tekenreeks