Mysql優(yōu)化筆記之UPDATE IN

在項(xiàng)目開發(fā)中,同事在原本功能的基礎(chǔ)上加入了新的業(yè)務(wù)操作代碼后,導(dǎo)致業(yè)務(wù)操作經(jīng)常超時(shí)椅您。故對(duì)其代碼進(jìn)行調(diào)試跟蹤后定位到,在update數(shù)據(jù)庫(kù)記錄時(shí)寫了in子查詢寡键,完整sql如下(非原sql):

update wms_stock set qty1 = 0 where id in (select stock_id from wms_order_line l where l.a_qty1 = 'a' and l.product_code = 'b');

查看其執(zhí)行計(jì)劃如下:

可以看到select_type存在DEPENDENT SUBQUERY掀泳,即子查詢依賴于外查詢。相當(dāng)于將wms_stock表符合條件的數(shù)據(jù)(這里是全表)查出后西轩,再拿內(nèi)查詢?nèi)ブ饤l匹配是否符合l.stock_id=s.id员舵。故 整個(gè)update語(yǔ)句共需掃描233253*1=233253次。

MySql 官網(wǎng)給出的解決方法是:

If you have a slow 'correlated' subquery with IN, you can optimize it with a join to get around the bug described by Ryan and Stephen. After the optimization the execution time is no longer O(M×N).

按照上邊的思路我們將sql改為:

update wms_stock s join wms_order_line l on s.id = l.stock_id set s.qty1 = 0 where l.a_qty1 = 'a' and l.product_code = 'b';

再次查看執(zhí)行計(jì)劃:

修改后問(wèn)題成功解決藕畔。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末马僻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子注服,更是在濱河造成了極大的恐慌韭邓,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溶弟,死亡現(xiàn)場(chǎng)離奇詭異女淑,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)辜御,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門鸭你,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人擒权,你說(shuō)我怎么就攤上這事袱巨。” “怎么了碳抄?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵愉老,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我纳鼎,道長(zhǎng)俺夕,這世上最難降的妖魔是什么裳凸? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮劝贸,結(jié)果婚禮上姨谷,老公的妹妹穿的比我還像新娘。我一直安慰自己映九,他們只是感情好梦湘,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著件甥,像睡著了一般捌议。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上引有,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天瓣颅,我揣著相機(jī)與錄音,去河邊找鬼譬正。 笑死宫补,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的曾我。 我是一名探鬼主播粉怕,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抒巢!你這毒婦竟也來(lái)了贫贝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蛉谜,失蹤者是張志新(化名)和其女友劉穎稚晚,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體型诚,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜈彼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俺驶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡棍辕,死狀恐怖暮现,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情楚昭,我是刑警寧澤栖袋,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站抚太,受9級(jí)特大地震影響塘幅,放射性物質(zhì)發(fā)生泄漏昔案。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一电媳、第九天 我趴在偏房一處隱蔽的房頂上張望踏揣。 院中可真熱鬧,春花似錦匾乓、人聲如沸捞稿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)娱局。三九已至,卻和暖如春咧七,著一層夾襖步出監(jiān)牢的瞬間衰齐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工继阻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耻涛,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓穴翩,卻偏偏與公主長(zhǎng)得像犬第,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芒帕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容