Group by優化

group by 優化 加order by null


mysql> explain select uid,sum(times) from tbl_name group by uid\G;

*************************** 1. row ***************************

          id: 1

 select_type: SIMPLE

       table: tbl_name

        type: ALL

possible_keys: NULL

         key: NULL

     key_len: NULL

         ref: NULL

        rows: 10000

       Extra: Using temporary; Using filesort

1 row in set (0.00 sec)


mysql> explain select uid,sum(times) from tbl_name group by uid order by null\G;

*************************** 1. row ***************************

          id: 1

 select_type: SIMPLE

       table: tbl_name

        type: ALL

possible_keys: NULL

         key: NULL

     key_len: NULL

         ref: NULL

        rows: 10000

       Extra: Using temporary

1 row in set (0.00 sec)

默認情況下,Group by col會對col字段進行排序,這就是爲什麼第一語句裏面有Using filesort的原因,如果你不需要對col字段進行排序,加上order by null吧,

要快很多,因爲filesort很慢的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章