logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
35 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 109 447 014

  • Nb. de membres 8 696
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Le coin des codeurs »» Quel avantage à classer une table

Quel avantage à classer une table#21616

3Contributeur(s)
Borisfliaigremrotta
3 Modérateur(s)
developpeurjpbJireck
fliaigre fliaigreicon_post
Suite à un bug de mise à jour, je me suis penché sur les tables et en particulier celles du forum.
Je me suis rendu compte que lorsqu'un post était supprimé, la place était prise et qu'au bout du compte le champ auto-incrémenté n'était pas classé dans l'ordre.

Quel intérêt y a t'il à le classer?

Question de newbie.
Boris Borisicon_post
En gros, si j'ai bien compris, tu demande :
J'ai une table avec les enregistrements n° 1,2,3,4,5,6,7 et 8, je vire le 5, pourquoi l'enregistrement suivant se met à 9 et non 5?
La réponse est toute simple.
Un entier, c'est de l'ordre de la dizaine de million, je crois. D'ici là que t'ait autant d'entrées dans ta table, en comptant les supprimées, t'a pas mal de temps devant toi!
Et pourquoi ne pas retrier les entrées? Tout simplement parce que ca prend un temps monstre à faire, et que ca peut créer des incohérences.
J'ai une table users avec 10 utilisateurs : 1, 2, 4, 5, 8, 11, 13, 14, 15, 16
Dans ma table articles, le champs renseignant l'id de l'émetteur de l'article est, sur l'une des entrées, à 15.
Si tu retrie la table user que je t'ai donnée ci-dessus, ca va te donner 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Et là, dans ma table articles, l'id 15, c'est qui?

Ben voilà, je pense que t'a tout compris. ;-)
fliaigre fliaigreicon_post
Oui j'ai compris mais ce n'est pas vraiment ma question.

Je dump ma table, dans mon fichier sql j'ai çà :

INSERT INTO posts VALUES (33858,'');
INSERT INTO posts VALUES (33866,'');
INSERT INTO posts VALUES (33867,'');
INSERT INTO posts VALUES (33868,'');
INSERT INTO posts VALUES (33860,'');

Je trouve çà bizarre, je dis donc :

Je me suis rendu compte que lorsqu'un post était supprimé, la place était prise et qu'au bout du compte le champ auto-incrémenté n'était pas classé dans l'ordre.

Quel intérêt y a t'il à le classer?
Boris Borisicon_post
Là, on ne parle pas de classement. La façon dont mysql stocke les infos, ca le regarde, nous on en a rien a faire, et de toute facon, on peut rien y changer. La seule chose que tu puisse faire, c'est trier les données lors d'une requête avec "ODER BY".

Pour ta question, c'est mysql qui fait sa sauce, et rassure toi, il règlera toujours l'auto-increment correctement (ca ne dépend pas de la valeur de la denrière ligne, mais de la plus grande valeur de la table)

Voilà! @+!

Boris
Conception de logiciels, sites web & communication, hébergement web professionnel, solutions de sécurité, dépannage/maintenance et fourniture de matériel, etc.
E-Concept Applications
mrotta mrottaicon_post
C'est là qu'interviennent les index... :=!
Boris Borisicon_post
Citation : mrotta

C'est là qu'interviennent les index... :=!


Mouais... Les index servent surtout à accélérer les recherches...
fliaigre fliaigreicon_post
Merci Boris, c'est clair. :=!