亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 7535 | 回復(fù): 2
打印 上一主題 下一主題

mysql group by 算法 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-02-23 16:56 |只看該作者 |倒序瀏覽
GROUP BY算法: 有3種,
a). 使用臨時表。創(chuàng)建臨時表,放入要group by的數(shù)據(jù),按照group by的字段進行排序,生成group by結(jié)果集以及計算聚合函數(shù)的結(jié)果
b). Loose Index Scan
使用條件是針對單表的查詢;group by的字段按照順序前導(dǎo)匹配某個索引;索引必須是有序的;聚合函數(shù)只包含min、max,字段必須相同并且在索引中,并且是索引中緊跟著group by字段的下一個字段;索引字段中除了group by的字段外,其他字段如果出現(xiàn)在where條件中,where條件只能是常量值。MySQL 5.4.4加入了幾個新的聚合函數(shù):AVG(DISTINCT), SUM(DISTINCT), 和COUNT(DISTINCT),也是有限制性的
這種方式只需要部分掃描索引即可完成group by操作,如果where子句中只有g(shù)roup by字段的條件,則索引掃描的層級只需要到group by包含的字段(如果索引除了group by字段之外還包含其他字段,這種處理方式根本不需要掃描到索引頁節(jié)點等層級)。正因為索引中包含的信息有限,因此該算法對聚合函數(shù)、索引的要求非常多,適用的場景比較窄,但是效率是最高的
例如表t1(c1,c2,c3,c4),有索引idx(c1,c2,c3),下面語句可以使用Loose Index Scan:
SELECT c1, c2 FROM t1 GROUP BY c1, c2;
SELECT c1, MIN(c2) FROM t1 GROUP BY c1;
SELECT c1, c2 FROM t1 WHERE c1  const GROUP BY c1, c2;
SELECT MAX(c3), MIN(c3), c1, c2 FROM t1 WHERE c2 > const GROUP BY c1, c2;
SELECT c2 FROM t1 WHERE c1  const GROUP BY c1, c2;
SELECT c1, c2 FROM t1 WHERE c3 = const GROUP BY c1, c2;c). Tight Index Scan
其實就是利用有序索引的特性,避免創(chuàng)建臨時表以及額外的排序操作,因此前提條件是能夠利用有序索引;僅通過索引掃描可以完成查詢
例如表t1(c1,c2,c3,c4),有索引idx(c1,c2,c3),下面2個語句都可以使用Tight Index Scan進行g(shù)roup by:
SELECT c1, c2, c3 FROM t1 WHERE c2 = 'a' GROUP BY c1, c3;
SELECT c1, c2, c3 FROM t1 WHERE c1 = 'a' GROUP BY c2, c3;
在EXPLAIN中,Extra中出現(xiàn)Using index for group-by表示使用Loose Index Scan實現(xiàn);Using Temporary表示使用臨時表實現(xiàn);否則表示使用Tight Index Scan實現(xiàn)

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/111930/showart_2185294.html

論壇徽章:
0
2 [報告]
發(fā)表于 2010-03-09 16:53 |只看該作者
學(xué)習(xí)了,呵呵 很詳細

論壇徽章:
0
3 [報告]
發(fā)表于 2010-09-12 16:22 |只看該作者
加入ORDER BY null還可以采用HASH
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP