Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2436 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  ID dans BDD, depassement int

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ID dans BDD, depassement int

n°2011316
guynemer
Trust rather than monogamy
Posté le 23-07-2010 à 12:31:36  profilanswer
 

Hello.
 
Question surement bete, mais vous est il deja arrive d'avoir epuisse le nombre d'ID (en tant que primary key) dans une base MySQL ?
 
Ca me parait concevable davoir plus de 4 milliards d'enregistrements, par exemple si la table est la pour conserver des stats.
 
Du coup comment gerer ca ? big int ? long ?

mood
Publicité
Posté le 23-07-2010 à 12:31:36  profilanswer
 

n°2011959
Sve@r
Posté le 26-07-2010 à 23:02:45  profilanswer
 

guynemer a écrit :

Hello.
 
Question surement bete, mais vous est il deja arrive d'avoir epuisse le nombre d'ID (en tant que primary key) dans une base MySQL ?


Moi jamais. Mais je n'utilise d'index simple que pour une table n'ayant pas de parent. Pour les tables enfant, mon index est un composé.
Exemple: si j'ai une table X où chaque élément de X peut avoir plusieurs éléments de Y
Ma table X sera de ce style
1: valeur X1
2: valeur X2
3: valeur X3
...
 
Et chaque élément de Y sera comme ceci
1:1: valeur Y1 de X1
1:2: valeur Y2 de X1
1:3: valeur Y3 de X1
2:1: valeur Y1 de X2
2:2: valeur Y2 de X2
2:3: valeur Y3 de X2
3:1: valeur Y1 de X3
3:2: valeur Y2 de X3
3:3: valeur Y3 de X3
 
Et donc chaque sous-élément Y1, Y2, Y3 n'est pas obligé d'avoir un identifiant unique, l'unicité étant assurée par le couple (idX, idY)
Bien entendu, si la table Y devient elle-même référence de la table Z, alors chaque élément de Z devra répéter (idX, idY) ce qui peut éventuellement paraitre lourd. Donc à voir... Surtout que je suis sous Postgres qui peut gérer les contraintes d'intégrité référentielles sur index composés (alors que MySQL ne le peut pas).
 

guynemer a écrit :

Ca me parait concevable davoir plus de 4 milliards d'enregistrements, par exemple si la table est la pour conserver des stats.
 
Du coup comment gerer ca ? big int ? long ?


Tu peux utiliser bigint en unsigned => tu passes de 4 milliards à 18 milliards de milliards. T'as de quoi faire non ?
Ou alors, puisqu'il s'agit de stat, tu rajoutes à ton index un TIMESTAMP et l'unicité sera assurée par le couple (TIMESTAMP, id), lequel id n'a plus besoin d'être énorme...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  ID dans BDD, depassement int

 

Sujets relatifs
Id fomr bloque envoie phpSondage sans BDD
PYTHON PHP BDD : Gros problème d'encodageSupprimer un élément XML en ayant son ID
[Résolu] Connexion à une BDD en local ET à distancecomment ajouté nvelle entrée ds Bdd et rester compatible avc mon site
MySQL création de BDD : clés primaires/étrangères types ...Stockage de données : BDD/Fichiers/En mémoire
Conversion globale du jeu de carctère sur BDDFormulaire avec les BDD
Plus de sujets relatifs à : ID dans BDD, depassement int


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR