问题:order by 排序字段会不会使用索引?创建表结构DROP TABLE IF EXISTS test.test;CREATE TABLE test.test(id int(10) not null auto_increment,a int(10) not null,b int(10) not null,c int(10) not null,PRIMARY key (id))ENGINE INNODB DEFAULT CHARSET utf8 COMMENT ‘测试表’;批量插入1000万条mysql> explain select * from test order by b desc limit 10;+—-+————-+——-+————+——+—————+——+———+——+———+———-+—————-+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+—-+————-+——-+————+——+—————+——+———+——+———+———-+—————-+| 1 | SIMPLE | test | NULL | ALL | NULL | NULL | NULL | NULL | 9979716 | 100.00 | Using filesort |+—-+————-+——-+————+——+—————+——+———+——+———+———-+—————-+1 row in set, 1 warning (0.00 sec)现象:执行计划是全盘扫描增加索引mysql> ALTER TABLE test ADD INDEX idx_b (b);Query OK, 0 rows affected (12.57 sec)再次查询mysql> explain select * from test order by b desc limit 10;+—-+————-+——-+————+——-+—————+——-+———+——+——+———-+——-+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+—-+————-+——-+————+——-+—————+——-+———+——+——+———-+——-+| 1 | SIMPLE | test | NULL | index | NULL | idx_b | 4 | NULL | 10 | 100.00 | NULL |+—-+————-+——-+————+——-+—————+——-+———+——+——+———-+——-+1 row in set, 1 warning (0.00 sec)现象:命中索引,执行计划只扫描10行结论:order by后面的的字段需要创建索引。