MySQLの order by と index の仕組みがわからなくなったので調査。 前提の自分の仮定 MySQLは降順インデックスをサポートしないので order by desc にインデックスを使用できない (user_id, point)という複合インデックスがあれば、where user_id = ? order by point ascというクエリはインデックスを最大限に使用できる 準備 MySQLのバージョンは 5.1.61 CREATE TABLE `sample` ( `id` int(10) unsigned NOT NULL, `user_id` int(10) unsigned NOT NULL, `point` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `i1` (`user_id`,`point`) )