Group by優化

group by 優化 加order by nullmysql


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

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

          id: 1優化

 select_type: SIMPLEui

       table: tbl_name排序

        type: ALLit

possible_keys: NULLtable

         key: NULLclass

     key_len: NULLfile

         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很慢的。

相關文章
相關標籤/搜索