Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ersatz für die Funktion UUID Version 1 von MySQL?

Ihre Sorge, dass "der größte Teil der UUID nutzlos ist und Speicherplatz verschwendet", hängt mit der Größe des Datentyps zusammen. Sie werden niemals so viele Einträge in Ihrer Datenbank haben können, wie es die theoretische Grenze von 16 Bytes zulässt.

Tatsächlich ist V1 UUID besser geeignet als V4, wenn Sie die UUID nur als Tabellen-ID verwenden - da sie MAC-Adresse und Zeitstempel verwendet, um Konflikte zu vermeiden. In V4 gibt es keinen solchen Mechanismus, obwohl Sie sich praktisch auch nicht zu viele Gedanken über Konflikte machen müssen :) Sie sollten V4 UUID anstelle von V1 verwenden, wenn Sie möchten, dass Ihre UUID unvorhersehbar ist.

Beachten Sie auch, dass das Zusammensetzen von beispielsweise 4x4-Byte-Zufallswerten möglicherweise nicht dasselbe ist wie das Erstellen eines 16-Byte-Zufallswerts. Wie immer bei Krypto und Zufälligkeit:Ich würde davon abraten, eine eigene UUID::V4-Routine zu implementieren.

Falls auf Ihrem Rechner installiert, können Sie die php-uuid verwenden Paket.

Ein Beispielcode (der unverändert in Ihrer Anwendung verwendet werden kann) finden Sie hier:http://rommelsantor.com/clog/2012/02/23/uuid-in-php-generieren/

Verwenden Sie es wie folgt:

$uuid = uuid_create(1);

Benutzer, die in der Lage sind, Pakete auf ihrem Webserver zu installieren, können das erforderliche Paket installieren, wie zum Beispiel:(hier für Ubuntu)

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