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