Optimiser mes tables
Résolu
DesTunK
Messages postés
392
Statut
Membre
-
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai une question toute simple dont je n'ai pas la réponse ^^'
Je bosse sur une BDD et je dois l'optimiser au maximum.
Je voulais savoir si il était préférable de mettre en clé primaire :
- utiliser la clé de base varchar(15) (login par exemple) car le nom de l'attribut est unique
ou bien
- ajouter un int autoincrémenter pour créer une clé qui remplace le login
Car je vais référencer cette clé primaire ensuite dans une autre table en clé étrangère.
Je vais donc avoir 4*nblignesPK octets en plus sur ma table de base, mais je vais économiser (16-4)*nblignesFK sur ma table en clé étrangère.
Est-ce que mon raisonnement est bon ?
Cordialement :)
J'ai une question toute simple dont je n'ai pas la réponse ^^'
Je bosse sur une BDD et je dois l'optimiser au maximum.
Je voulais savoir si il était préférable de mettre en clé primaire :
- utiliser la clé de base varchar(15) (login par exemple) car le nom de l'attribut est unique
ou bien
- ajouter un int autoincrémenter pour créer une clé qui remplace le login
Car je vais référencer cette clé primaire ensuite dans une autre table en clé étrangère.
Je vais donc avoir 4*nblignesPK octets en plus sur ma table de base, mais je vais économiser (16-4)*nblignesFK sur ma table en clé étrangère.
Est-ce que mon raisonnement est bon ?
Cordialement :)
1 réponse
-
Bonjour,
Il est préférable (en terme de performances) de manipuler des clés numériques au lieu de varchar.
Donc oui.. mettre un ID auto-incréménté est préférable ..
-
Merci beaucoup, je bloquais la dessus car c'est une question qui semble rajouté des informations au premier avis.
Par contre, comment faire pour ne pas perdre l'unicité.
Car mettre un id au lieu d'un varchar en clé primaire permet maintenant d'avoir le varchar plusieurs fois dans la base avec un ID différent.
Il s'agit de faire une vérification à partir de mon PHP du coup ? -
-
-