web-dev-qa-db-fra.com

PostgreSQL deux manières différentes de générer un UUID: gen_random_uuid vs uuid_generate_v4?

Quelle est la différence entre les deux fonctions suivantes

Sont-ils tous les deux les mêmes dans les coulisses? Y a-t-il des répercussions sur les performances de son utilisation?

10
user148246

Sont-ils les mêmes?

Non.

La documentation Postgres pour uuid-ossp suggère d'utiliser gen_random_uuid() Si vous n'avez besoin que d'UUID générés aléatoirement (version 4),

L'extension uuid-ossp fournit également d'autres types d'UUID (tels que les adresses mac)

La différence?

J'ai regardé la source et j'ai découvert que

  • uuid_generate_v4() utilise arc4random pour déterminer la partie aléatoire.

  • gen_random_uuid() utilise plutôt fortuna.

A part ça, ils font le même travail.

7
Jasen