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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP MYSQL] Trier une table dans la base

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP MYSQL] Trier une table dans la base

n°269596
belgique
Posté le 14-12-2002 à 13:13:51  profilanswer
 

J'ai fait un petit moteur de news et je lui demande tjs de sortir les dernière news en fonction de la date avec une requete du genre: SELECT * from news ORDER BY Date limits 0,10.
Bref je suppose qu'il parocour ma table fait un tri et prend les 10 premiers. N'y aurait il pas moyen de classer tout celà déjà dans la base à chaque insertion pour pouvoir faire par après  
SELECT * from news limits 0,10. ? Ou y a t il une autre façon d'optimiser parceque je me dis qu'avec plus d'enregistrements ça va devenir drôle :(


---------------
Belgian connection
mood
Publicité
Posté le 14-12-2002 à 13:13:51  profilanswer
 

n°269611
HappyHarry
Posté le 14-12-2002 à 13:36:26  profilanswer
 

belgique a écrit :

J'ai fait un petit moteur de news et je lui demande tjs de sortir les dernière news en fonction de la date avec une requete du genre: SELECT * from news ORDER BY Date limits 0,10.
Bref je suppose qu'il parocour ma table fait un tri et prend les 10 premiers. N'y aurait il pas moyen de classer tout celà déjà dans la base à chaque insertion pour pouvoir faire par après  
SELECT * from news limits 0,10. ? Ou y a t il une autre façon d'optimiser parceque je me dis qu'avec plus d'enregistrements ça va devenir drôle :(


 
non
 
a part mettre un index sur les champs concernés par les tris

n°269613
belgique
Posté le 14-12-2002 à 13:42:40  profilanswer
 

Enfin, un index sur les dates aidera-t-il au tri?  
J'ai aussi vu une option dans phpmyamdin qui permettait de trier les enregistrements mais comme je connais pas la commande :/


---------------
Belgian connection
n°269701
Dost67
Posté le 14-12-2002 à 17:47:05  profilanswer
 

Exécute la commande dans PHPMyAdmin et tu verras la requête (c'est du ALTER TABLE je sais plus quoi). En fait ça réorganise ta table en fonction du champ que tu indiques. Comme ça si tu fais un LIMIT sans ORDER BY ça marche comme tu veux mais je sais pas si c'est plus rapide.
 
Sinon je ne pense pas que tu ais de pb du moment que tu dépasses pas 10000 news. J'avais fais un test avec une base de 10000 articles (avec un champ date). Dans ma requête j'avais un ORDER BY date DESC LIMIT 0,3 ... Donc l'index que j'avais mis sur date n'était pas utilisé (car order desc et pas asc) comme j'avais pas MySQL 4. Mais la requête était quand même transparente pour l'utilisateur.
 
Donc je pense que tu n'as pas de souci à te faire.
 
Le mieux est d'aller voir le chap Comment MySQL optimise LIMIT dans la doc.

n°269706
Dost67
Posté le 14-12-2002 à 17:50:59  profilanswer
 

Citation :

If you use LIMIT # with ORDER BY, MySQL will end the sorting as soon as it has found the first # lines instead of sorting the whole table.


Bon le pb c'est que ça n'utilise pas l'index quand c'est DESC. Et que je ne vois pas comment MySQL peut faire pour ne pas scanner tte la table s'il n'y a pas d'index (puisque si la dernière valeur a la date la plus récente il faut la mettre en premier), car je pense que c'est un algorithme de tri par insertion (??? en fait j'en sais rien ???).

n°269807
belgique
Posté le 14-12-2002 à 21:52:46  profilanswer
 

Pour l'index et desc je m'en doutais bien, maintenant il est pratiquement sur que sans order ça doit être bien plus rapide. Phpadmin ne m'affiche pas la requête pour ce type d'actions :/


---------------
Belgian connection
n°269808
belgique
Posté le 14-12-2002 à 21:55:44  profilanswer
 

Merci pour alter au fait, je vais aller voir de ce coté là ;)


---------------
Belgian connection

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP MYSQL] Trier une table dans la base

 

Sujets relatifs
[MySQL]optimisation requetemysql et le count()
[MySQL] Création de comptes utilisateur[PHP] pb de generation de tableau auto 1 ligne Ok 2eme NaN
[PHP] Petit soucis avec une expression régulièreMS SQL Server 2000 et Mysql
[MySQL] Dans ce forum , Joce a crée...Comment géré une cession PHP pour garder la connection Oracle ???
[PHP - HTML] FormulairesSe connecter à une base d'un serveur Web ? -> RDS Inside
Plus de sujets relatifs à : [PHP MYSQL] Trier une table dans la base


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