mysql在8.0版本真正支持降序索引,详情请看:MySQL官方文档
测试一下5.7和8.0两个版本下索引排序的情况:
1.mysql8.0
CREATE TABLE `t1` (
`c1` int(11) DEFAULT NULL,
`c2` int(11) DEFAULT NULL,
KEY `idx_c1_c2` (`c1`, `c2` DESC)
);
explain select * from t1 order by c1 , c2 desc limit 10;
explain select * from t1 order by c1 , c2 limit 10;
explain select * from t1 order by c1 desc , c2 desc limit 10;
explain select * from t1 order by c1 desc limit 10;
explain select * from t1 order by c1 limit 10;
explain select * from t1 order by c2 desc limit 10;
explain select * from t1 order by c2 limit 10;
explain select * from t1 order by c1 desc,c2 limit 10;
2.mysql5.7
CREATE TABLE `t1` (
`c1` int(11) DEFAULT NULL,
`c2` int(11) DEFAULT NULL,
KEY `index_name` (`c1`, `c2` DESC)
);
explain select * from t1 order by c1 , c2 limit 10;
explain select * from t1 order by c1 , c2 desc limit 10;
explain select * from t1 order by c1 limit 10;
explain select * from t1 order by c1 desc limit 10;
explain select * from t1 order by c1 desc,c2 desc limit 10;
explain select * from t1 order by c1 desc,c2 limit 10;