Pourquoi utiliser des UUID comme clé primaire peut être problématique : La plupart des bases de données ont tendance à grouper les enregistrements par clé primaire. Si votre clé primaire est basée sur un B-Tree, le fait d'utiliser des UUID va éparpiller les données dans le B-Tree.
À l'insertion ça force un rebalancing du B-Tree. À la lecture ça va charger plein de pages puisque les données chronologiquement consécutives sont éparpillées.
L'article explique le problème dans SQLite, mais ce problème se reproduit sans doute aussi à moindre échelle dans d'autres gestionnaires de bases de données.
(
Permalink)