Php 使用Where子句的Mysql排名会更快吗?
我有一个8.000.000行的数据库,有两列“id”和“score”,我还知道score=0的用户的确切数量(接近4.000.000) 我的网页上有一个排名板,上面有以下查询:Php 使用Where子句的Mysql排名会更快吗?,php,mysql,Php,Mysql,我有一个8.000.000行的数据库,有两列“id”和“score”,我还知道score=0的用户的确切数量(接近4.000.000) 我的网页上有一个排名板,上面有以下查询: "SELECT id, score FROM table ORDER BY score DESC LIMIT ".$num_rank.", 25" $num_rank定义显示哪个页面,每页25个用户 查询工作正常,它显示了它必须显示的内容,但问题是查询速度非常慢 问题是下一个查询可能会更快 $num_users_sco
"SELECT id, score FROM table ORDER BY score DESC LIMIT ".$num_rank.", 25"
$num_rank
定义显示哪个页面,每页25个用户
查询工作正常,它显示了它必须显示的内容,但问题是查询速度非常慢
问题是下一个查询可能会更快
$num_users_score_0 = 4000123
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"**
}
所有的建议都很感激
谢谢 是的,您的查询速度会更快,对第一个查询有一个改进:“order by”是不必要的:
query="SELECT id, score FROM table WHERE score = 0 LIMIT ".$num_rank.", 25"
此外,在表(score,id)
上添加索引会更快。事实上,有了这个索引,您就可以使用原始查询了