ALTER TABLE ... - SQL/NoSQL - Programmation
Marsh Posté le 25-02-2005 à 19:57:22
et pourquoi tu ne fais pas le tri dans la requête ?
Pour des raisons de performances ?
Marsh Posté le 25-02-2005 à 20:03:33
Exactement
La table contient 500 000 enregistrements ... Mon tri s'effectuerait sur des enregistrements disséminés un peu partout, donc une grosse perte de perfs (Même en utilisant des index bien placés)
Marsh Posté le 25-02-2005 à 20:16:26
c'est chose tout à fait normal...
le language SQL à été conçu dans ce but... c'est lui qui gere les perfs... donc je ne pense pas que tu as a te soucié de cela... malheureusement, il tu n'as vraiment d'autre possibilités.
Marsh Posté le 25-02-2005 à 20:34:07
Si tu dois souvent accéder aux enregistrements ayant les plus gros nombres, faudrait plutôt avoir une table contenant les références vers ces enregistrements, par exemple ... mais ça implique un mécanisme de maintenance de cette table.
En gros, on prépare les données (ce qui prend un petit peu de temps supplémentaire quand on insère dans la table), mais ensuite à l'exécution, c'est plus rapide.
Marsh Posté le 25-02-2005 à 19:32:38
Bonsoir à tous,
J'ai réorganisé ma BDD MySQL en faisant un : ALTER TABLE ma_table ORDER BY champ DESC.
Le champ "champ" est de type mediumint(7). Du coup, les plus "gros" nombre se situe au début de ma table, jusque là, tout est normal
Néanmoins, lorsque j'insère un nouvel enregistrement, quelque soit la valeur de son champ "champ", il se positionne en dernier dans la table (En dur aussi, tout à la fin du fichier BDD).
Je me demandais donc comment faire pour que, lors de chaque enregistrements, les valeurs de "champ" soit directement bien positionné ; et ce, sans passer par un autre ALTER TABLE qui reste une opération assez lourde sur une grosse BDD
Merci à tous
---------------
Envie d'un bol d'air ? Traxxas Revo 3.3