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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Comment optimiser ORDER BY RAND() ?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment optimiser ORDER BY RAND() ?

n°2308458
Stellvia_f​r
Posté le 07-12-2017 à 13:54:51  profilanswer
 

Bonjour,
 
Voici ma requête :
 

Code :
  1. select var1,var2 from mabase WHERE id='3' ORDER BY clic DESC,RAND() LIMIT 50


 
Donc je veux extraire les 50 premières lignes qui ont le plus de clic avec id=3, ensuite l'ordre doit être aléatoire (parmis les 50 donc).
 
Avec un explain j'ai comme réponse :
 

Code :
  1. Using index condition; Using temporary; Using filesort


 
Ouch  :ouch:  une idée de comment optimiser ma requête ?


Message édité par Stellvia_fr le 07-12-2017 à 13:56:09
mood
Publicité
Posté le 07-12-2017 à 13:54:51  profilanswer
 

n°2308472
Stellvia_f​r
Posté le 07-12-2017 à 16:56:50  profilanswer
 

Bon j'ai trouvé la solution, pour ceux qui tombe sur ce topic voici la solution :
 

Code :
  1. SELECT *
  2. FROM (
  3.     VOTRE_REQUETE
  4.     ) AS TOP
  5. ORDER BY RAND()


 
Dans mon cas ca fait :
 

Code :
  1. SELECT *
  2. FROM (
  3.     select var1,var2 from mabase WHERE id='3' ORDER BY clic DESC LIMIT 50
  4.     ) AS TOP
  5. ORDER BY RAND()


 
 
C'est en fait une requete imbriqué dans une seconde qui random les résultat de la première.


Message édité par Stellvia_fr le 07-12-2017 à 16:57:41

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

  Comment optimiser ORDER BY RAND() ?

 

Sujets relatifs
challenge order of 10Algo pour optimiser les achats
ORDER BY... mysqli_num_rows($requete);Optimiser un programme Matlab
group BY et moyenne de valeursMySQL : 1h pour une requête avec un NOT IN, conseils pour optimiser ?
[SQL] ORDER BY selon préférence[RESOLU] REQUETE SQL AVEC ID ET ORDER
Plus de sujets relatifs à : Comment optimiser ORDER BY RAND() ?


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR