新聞中心
mysql的groupby怎么優(yōu)化?
在某些情況中,MySQL能夠做得更好,通過索引訪問而不用創(chuàng)建臨時(shí)表。GROUPBY使用索引的最重要的前提條件是所有GROUPBY列引用同一索引的屬性,并且索引按順序保存(例如,這是B-樹索引,而不是HASH索引)。是否用索引訪問來代替臨時(shí)表的使用還取決于在查詢中使用了哪部分索引、為該部分指定的條件,以及選擇的累積函數(shù)。有兩種方法可以通過索引優(yōu)化GROUPBY語句:

目前創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、寧縣網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
1,組合操作結(jié)合所有范圍判斷式使用(如果有)。
2,首先執(zhí)行范圍掃描,然后組合結(jié)果元組。
如何進(jìn)行SQL性能優(yōu)化?
一、使用索引 1.單表索引建議控制在5個(gè)以內(nèi) 2.單索引字段數(shù)不允許超過5個(gè)因?yàn)樽侄纬^5個(gè)時(shí),實(shí)際已經(jīng)起不到有效過濾數(shù)據(jù)的作用了。 3.禁止在更新十分頻繁、區(qū)分度不高的屬性上建立索引,因?yàn)楦聲兏麭+樹,更新頻繁的字段建立索引會大大降低數(shù)據(jù)庫性能。 4.性別”這種區(qū)分度不大的屬性,建立索引是沒有什么意義的,不能有效過濾數(shù)據(jù),性 能與全表掃描類似。 5.建立組合索引,必須把區(qū)分度高的字段放在前面,因?yàn)槟軌蚋佑行У倪^濾數(shù)據(jù)。
二、SQL使用規(guī)范優(yōu)化 1.禁止使用SELECT?*,只獲取必要的字段,需要顯示說明列屬性。
1.1讀取不需要的列會增加CPU、IO、NET消耗。 1.2不能有效的利用覆蓋索引。 2.禁止使用INSERT?INTO?t_xxx?VALUES(xxx),必須顯示指定插入的列屬性。 2.1容易在增加或者刪除字段后出現(xiàn)程序BUG。 3.禁止使用屬性隱式轉(zhuǎn)換。 3.1 SELECT?uid?FROM?t_user?WHERE?phone=13812345678?會導(dǎo)致全表掃描,而不 能命中phone索引。 4.禁止在WHERE條件的屬性上使用函數(shù)或者表達(dá)式。 4.1SELECT?uid?FROM?t_user?WHERE?from_unixtime(day)>='2019-07-15'?會導(dǎo)致全 表掃描。 4.2正確的寫法是:SELECT?uid?FROM?t_user?WHERE?day>=?unix_timestamp('2019-07-15 00:00:00')。 5.禁止負(fù)向查詢,以及%開頭的模糊查詢。 5.1 負(fù)向查詢條件:NOT、!=、<>、!<、!>、NOT?IN、NOT?LIKE等,會導(dǎo)致全表掃描。 5.2 %開頭的模糊查詢,會導(dǎo)致全表掃描。 6.禁止大表使用JOIN查詢,禁止大表使用子查詢。 6.1會產(chǎn)生臨時(shí)表,消耗較多內(nèi)存與CPU,極大影響數(shù)據(jù)庫性能。 7.禁止使用OR條件,必須改為IN查詢。 7.1舊版本Mysql的OR查詢是不能命中索引的,即使能命中索引,為何要讓數(shù)據(jù)庫耗費(fèi) 更多的CPU幫助實(shí)施查詢優(yōu)化呢? 8.應(yīng)用程序必須捕獲SQL異常,并有相應(yīng)處理 總結(jié):大數(shù)據(jù)量高并發(fā)的互聯(lián)網(wǎng)業(yè)務(wù),極大影響數(shù)據(jù)庫性能的都不能用哦。
mysql 性能優(yōu)化推薦書籍?
1.《高性能MySQL》
noDB存儲引擎》
noDBnoDB的架構(gòu)、索引、事務(wù)、鎖等方面的知識,并且給出了大量的實(shí)例和性能測試結(jié)果,非常適合MySQL的進(jìn)階者。
3.《MySQL性能調(diào)優(yōu)與架構(gòu)設(shè)計(jì)》
4.《MySQL技術(shù)內(nèi)幕:SQL優(yōu)化》
到此,以上就是小編對于mysql數(shù)據(jù)庫優(yōu)化的方法是什么樣的的問題就介紹到這了,希望這3點(diǎn)解答對大家有用。
本文題目:mysql的groupby怎么優(yōu)化?(MySQL數(shù)據(jù)庫優(yōu)化的方法是什么)
路徑分享:http://www.dlmjj.cn/article/dpdhheh.html


咨詢
建站咨詢
