本篇文章給大家分享的是有關(guān)MySQL關(guān)于In的優(yōu)化是怎么樣的,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著小編一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)專(zhuān)業(yè)為企業(yè)提供新吳網(wǎng)站建設(shè)、新吳做網(wǎng)站、新吳網(wǎng)站設(shè)計(jì)、新吳網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、新吳企業(yè)網(wǎng)站模板建站服務(wù),十多年新吳做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
MySQL版本:5.6.14
files表記錄的是dfs系統(tǒng)中的文件信息.
有一批數(shù)據(jù)上傳出現(xiàn)錯(cuò)誤,需要重新上傳.
錯(cuò)誤文件的范圍已經(jīng)記錄在了test.files_20170206表中。
運(yùn)行如下查詢(xún),竟然很長(zhǎng)時(shí)間沒(méi)有結(jié)果.
select * from files t1 where (oldpath,flen) in (
select oldpath,max(flen) from files f where oldpath in
(select oldpath from test.files_20170206 )
group by oldpath
)
使用explain extended 查看執(zhí)行計(jì)劃
原來(lái)的SQL,使用了Exists方式.
改寫(xiě)SQL如下,實(shí)際上就是加了一層嵌套.
select * from files t1 where (oldpath,flen) in (
select * from (
select oldpath,max(flen) from files f where oldpath in
(select oldpath from test.files_20170206 )
group by oldpath
) a
)
經(jīng)過(guò)改寫(xiě)之后,就符合了原來(lái)的預(yù)期,先將結(jié)果保存為一個(gè)臨時(shí)表.然后通過(guò)臨時(shí)表再查數(shù)據(jù).
以上就是MySQL關(guān)于In的優(yōu)化是怎么樣的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。