在使用group by col的时候,mysql 会自动order by col ,在只需要分组不需要排序的情况下,可用使用可以使用GROUP BY col ORDER BY NULL提升执行效率,仅仅对col列分组,而不排序。
mysql> select * from testy;
+--------+---------+---------------------+
| rec_id | message | created |
+--------+---------+---------------------+
| 404 | 3 | 2016-09-03 14:00:18 |
| 405 | 4 | 2016-09-03 14:00:18 |
| 406 | 3 | 2016-09-03 14:03:52 |
| 407 | 1 | 2016-09-03 14:03:52 |
+--------+---------+---------------------+
4 rows in set (0.00 sec)
mysql> select * from testy group by message;
+--------+---------+---------------------+
| rec_id | message | created |
+--------+---------+---------------------+
| 407 | 1 | 2016-09-03 14:03:52 |
| 404 | 3 | 2016-09-03 14:00:18 |
| 405 | 4 | 2016-09-03 14:00:18 |
+--------+---------+---------------------+
3 rows in set (0.00 sec)
mysql> select * from testy group by message order by null;
+--------+---------+---------------------+
| rec_id | message | created |
+--------+---------+---------------------+
| 404 | 3 | 2016-09-03 14:00:18 |
| 405 | 4 | 2016-09-03 14:00:18 |
| 407 | 1 | 2016-09-03 14:03:52 |
+--------+---------+---------------------+
3 rows in set (0.00 sec)