ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### 优化group by 默认情况下, mysql对所有的group by col1,col2进行排序。这与在查询中指定order by col1,col2类型,如果查询中包括group by 但用户想要避免排序结果的消耗,则可以使用order by null禁止排序。 根据class_id进行分组 ~~~ select * from 表 group by class_id; ~~~ 结果: mysql自动对结果进行了排序. ~~~ +----+------+------+----------+ | id | name | age | class_id | +----+------+------+----------+ | 4 | jack | 30 | 1 | | 2 | jack1| 24 | 3 | | 1 | jack2| 20 | 4 | | 3 | jack3| 14 | 5 | +----+------+------+----------+ ~~~ 通过执行计划可以看到使用了排序 ~~~ id: 1 select_type: SIMPLE table: user partitions: NULL type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 4 filtered: 100.00 Extra: Using temporary; Using filesort //使用了排序 ~~~ 优化: ~~~ select * from user group by class_id order by null; ~~~ 结果: ~~~ id: 1 select_type: SIMPLE table: user partitions: NULL type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 4 filtered: 100.00 Extra: Using temporary //这里没有了排序 ~~~