Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi ne pas utiliser l'heure de création d'un enregistrement comme clé primaire ?

La réponse générale est que vos données peuvent changer (là où un identifiant sans signification ne le sera jamais)... que se passe-t-il lorsque vous vous rendez compte que vous stockez l'heure dans la zone locale et que l'heure d'été s'enclenche ? Si vous souhaitez stocker en UTC et/ou en fonction d'un fuseau horaire spécifique ? Pour plus de considérations de commande, voir réponse de wcoenen .

Si vous commencez à créer des milliers de lignes par seconde et que vous devez jouer avec des données pour "faire fonctionner" quelque chose pour lequel il n'était pas prévu. Peut-être ajouteriez-vous une colonne d'homonymie qui rendrait votre index plus gros et plus lent...

Et puis quand votre projet devient méga populaire et que les gens commencent à essayer d'exécuter des rapports/requêtes et "il utilise une date comme PK ???!!!"

Envisagez également d'utiliser une base de données qui autorise les index clusterisés sur des colonnes non primaires.