MySQL子查詢用法實(shí)例分析
本文實(shí)例講述了MySQL子查詢用法。分享給大家供大家參考,具體如下:
假設(shè)表my_tbl包含三個字段a,b,c;現(xiàn)在需要查詢表中列a的每個不同值下的列b為最小值的記錄量。
比如表記錄為:
a b c
1 3 'cd'
2 3 'nhd'
1 5 'bg'
2 6 'cds'
1 7 'kiy'
3 7 'vsd'
3 8 'ndf'
希望得到結(jié)果為:
a b c
1 3 'cd'
2 3 'nhd'
3 7 'vsd'
(1) 其中一個做法:先查出每個a值下的b最小值,然后根據(jù)這些最小值去查詢符合要求的所有記錄。
查詢符合最小b值的sql寫法如下:
由于是嵌套查詢和取交集,80萬條記錄情況下竟然用一個小時也沒把中間結(jié)果算出來(我真懷疑是自己哪里寫錯了);后面求記錄量就免談了。
(2) 上面的方法是個災(zāi)難, 只能棄用了。
具體邏輯為:先按列a,b分組,然后選擇每組中列b值最小的記錄,生成結(jié)果集。
sql語句寫法如下:
執(zhí)行查詢后,時間竟只用了1.1秒。
再一次證明,sql的查詢策略的不同能直接導(dǎo)致性能上的巨大差異。
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL事務(wù)操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對大家MySQL數(shù)據(jù)庫計(jì)有所幫助。
相關(guān)文章
ubuntu server配置mysql并實(shí)現(xiàn)遠(yuǎn)程連接的操作方法
下面小編就為大家分享一篇ubuntu server配置mysql并實(shí)現(xiàn)遠(yuǎn)程連接的操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12MySQL查詢優(yōu)化:LIMIT 1避免全表掃描提高查詢效率
在某些情況下,如果明知道查詢結(jié)果只有一個,SQL語句中使用LIMIT 1會提高查詢效率,感興趣的朋友可以了解下哈,希望對你優(yōu)化mysql查詢有所幫助2013-04-04MySQL插入數(shù)據(jù)與查詢數(shù)據(jù)
這篇文章主要介紹了 MySQL插入數(shù)據(jù)與查詢數(shù)據(jù),缺省插入、缺省插入、缺省插入等各種數(shù)據(jù)插入分享,需要的小伙伴可以參考一下,希望對你有所幫助2022-03-03