嗯这时可以看到mysql使用了userid这个索引搜索了用userid索引一次搜索后结果集有条然后虽然使用了filesort一条一条排序但是因为结果集只有区区条效率问题得以缓解但是如果我用别的userid查询结果又会有所不同
mysql> desc select * from imgs where userid=admin order by clicks desc limit ;
row in set ( sec)
这个结果和userid=mini的结果基本相同但是mysql用userid索引一次搜索后结果集的大小达到条这条记录都会加入内存进行filesort效率比起mini那次来说就差很多了这时可以有两种办法可以解决第一种办法是再加一个索引和判断条件因为我只需要根据点击量取最大的条数据所以有很多数据我根本不需要加进来排序比如点击量小于的这些数据可能占了很大部分我对clicks加一个索引然后加入一个where条件再查询create index clicks on imgs(clicks);
mysql> desc select * from imgs where userid=admin order by clicks desc limit ;
row in set ( sec)
[] [] [] [] [] []