程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 【MySQL優化】MySQL GROUP BY 操作的優化

【MySQL優化】MySQL GROUP BY 操作的優化

編輯:MySQL綜合教程

MySQL GROUP BY 操作的優化
默認情況下, MySQL 在執行 GROUP BY col1 , col2.... 操作的時候,會按照 GROUP BY 字段的順序進行排序。如果顯式包括一個包含相同的列的 ORDER BY 子句,則對 MySQL 的實際執行性能沒有什麼額外的影響。

如果查詢包括 GROUP BY 操作, 但是不需要對結果進行排序,或者對默認的排序結果不滿意,希望獲得結果後再由程序進一步處理的時候,可以指定 ORDER BY NULL 禁止排序,從而避免排序結果的消耗。

下面介紹的例子對比了開啟 / 關閉 GROUP BY 排序的執行計劃:

mysql> desc select dep,pos,avg(sal) from employee group by dep,pos G

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

id: 1

select_type: SIMPLE

table: employee

type: ALL

possible_keys: NULL

key: NULL

key_len: NULL

ref: NULL

rows: 10

Extra: Using temporary; Using filesort

1 row in set (0.00 sec)

mysql> desc select dep,pos,avg(sal) from employee group by dep,pos order by null G

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

id: 1

select_type: SIMPLE

table: employee

type: ALL

possible_keys: NULL

key: NULL

key_len: NULL

ref: NULL

rows: 10

Extra: Using temporary

1 row in set (0.00 sec)

從執行計劃可以看到,使用了 ORDER BY NULL 的 SQL 減少了文件排序的步驟,當返回結果集很大時,對於 GROUP BY 的性能是有很大改善的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved