J'ai une base de données avec 8.000.000 lignes, avec 2 colonnes 'id' et 'score', je sais aussi le nombre exact d'utilisateurs avec score = 0 (c'est près de 4.000.000).Mysql Rank avec une clause Where sera plus rapide?
J'ai une carte de classement dans ma page web avec la requête:
"SELECT id, score FROM table ORDER BY score DESC LIMIT ".$num_rank.", 25"
$num_rank
définit qui montrent la page, et il est 25 utilisateurs par page.
La requête fonctionne, et elle montre ce qu'elle doit montrer mais le problème est que la requête est vraiment lente.
La question est la question suivante peut être plus rapide ?:
$num_users_score_0 = 400
if(score==0){
$num_rank=$num_rank-$num_users_score_0
query=**"SELECT id, score FROM table WHERE score = 0 ORDER BY score DESC LIMIT ".$num_rank.", 25"**
}else{
query=**"SELECT id, score FROM table WHERE score > 0 ORDER BY score DESC LIMIT ".$num_rank.", 25"**
}
Toutes les suggestions sont appreciatted!
Merci !!!
Merci beaucoup! – etrull