2016-07-27 14:12 GMT+02:00 Guillermo E. Villanueva <guillermo...@gmail.com>: > Hola Edwin, con la prueba que hice me quedé tranquilo, el día que lleguen a > mas de 50 millones de registros yo y mis hijos ya estaremos jubilados jaja. > No reemplazo nada, simplemente trunco el md5(). Tengo un trigger que hace lo > siguiente: > new.columnahash := right(md5(new.columnaid),13);
Ten en cuenta que las matematicas son muy putillas, y despues de 50 millones de unicos te pueden venir 3000 colisiones. De todas formas la probabilidad de colision ahi es la clasica paradoja del cumpleaños, y con 3 digitos hexadecimales y 50 millones de intentos esta en un 25% ( Aqui mi codigo, que seguro tiene algn problema, y que calcula la probabilidad de NO colision, que como casi todo el mundo sabe es la facil: $ perl -e '$x=16**13; $p=1; for (1..50_000_000) { $p*=$x-$_; $p/=$x; } print "$p\n"' 0.757633315718648 Seguro que tiene errores de redondeo y cosas asi, y creo que lo que calculo es para 50M+1, pero bueno, sus haceis una idea ) Yo probaria a usar base 64, parece que no pero cambiando 16 por 64 en ese codigo da un resultado de 0.99999999631153 ). Francisco Olarte. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda