2009-05-06 4 views

Répondre

4

Quelques informations: Le nombre de valeurs que 16 octets peuvent contenir est 2^128.

total = nombre de valeurs totales qui peuvent être représentés

réel = nombre de valeurs qui ont déjà été utilisées

La probabilité d'insertion d'un identifiant dans une table qui existe déjà peut être formulée comme suit :

1 - (total - réel)/total

Je l'ai fait quelques calculs préliminaires et je suis venu avec ce qui suit:

que vous aviez une table qui avait 10 millions d'enregistrements déjà dans la table, alors la probabilité serait

1 - (2^128 - 10000000)/2^128

qui est appromixately

0,00000000000000000000000000000003

Je pense que maintenant je sais pourquoi il est dit que:

« Bien que chaque GUID généré n'est pas garanti d'être unique, le nombre total de clés uniques est si grand que la probabilité du même nombre généré deux fois est infinitésimale »

from the wiki

+0

C'est assez sûr pour moi dans la plupart des cas. –

+0

Vous voulez dire 16 BYTES, pas 16 BITS. –

+0

Il convient également de noter que certains schémas de génération GUID incluent des informations d'adresse mac/heure et/ou mac. Ces schémas ont de mauvais effets (vous pouvez utiliser le GUID pour tracer le générateur et les GUID deviennent plus prévisibles) et de bons effets (puisque les adresses MAC sont uniques et l'heure/date avance toujours, vous avez encore moins de chance de générer plusieurs sources GUID). –

Questions connexes