共計(jì) 696 個(gè)字符,預(yù)計(jì)需要花費(fèi) 2 分鐘才能閱讀完成。
本篇文章給大家分享的是有關(guān) MySQL 關(guān)于 In 的優(yōu)化是怎么樣的,丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。
MySQL 版本:5.6.14
files 表記錄的是 dfs 系統(tǒng)中的文件信息.
有一批數(shù)據(jù)上傳出現(xiàn)錯(cuò)誤, 需要重新上傳.
錯(cuò)誤文件的范圍已經(jīng)記錄在了 test.files_20170206 表中。
運(yùn)行如下查詢, 竟然很長時(shí)間沒有結(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ì)劃
原來的 SQL, 使用了 Exists 方式.
改寫 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)過改寫之后, 就符合了原來的預(yù)期, 先將結(jié)果保存為一個(gè)臨時(shí)表. 然后通過臨時(shí)表再查數(shù)據(jù).
以上就是 MySQL 關(guān)于 In 的優(yōu)化是怎么樣的,丸趣 TV 小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注丸趣 TV 行業(yè)資訊頻道。