本文主要介紹mysql相關(guān)子查詢(mysql子查詢和相關(guān)查詢),下面一起看看mysql相關(guān)子查詢(mysql子查詢和相關(guān)查詢)相關(guān)資訊。
分享一個(gè)mysql相關(guān)的子查詢優(yōu)化方法,供大家參考,如下:很多時(shí)候,基于mysql的子查詢性能很差,聽起來有點(diǎn)可悲。特別是,當(dāng)在子查詢中使用時(shí),很難估計(jì)一些數(shù)量級(jí)的表時(shí)間消耗。我的mysql知識(shí)不深,只能慢慢的在中穿行。假設(shè)有這樣一個(gè)已有的查詢語句:select * from table exists(select * from table 30000,table 1 exist in id = = table。uuid .uuid);表1是一個(gè)10萬行級(jí)的表,100萬行級(jí)的表,本機(jī)的結(jié)果是2.40s,通過解釋我們可以看到子查詢是一個(gè)相關(guān)子查詢(related subquery);mysql將首先掃描整個(gè)表的外觀,然后對(duì)返回的uuid執(zhí)行子查詢的基本步驟。如果外觀是表格,可以想象查詢的性能會(huì)比這次考試差。一個(gè)簡(jiǎn)單的優(yōu)化方案是用inner join替換子查詢,查詢語句可以更改:復(fù)制代碼如下:select * from tabl測(cè)試結(jié)果用了0.68s,通過解釋我們可以看到mysql使用的是簡(jiǎn)單類型(通過查詢或者聯(lián)合查詢),mysql的優(yōu)化器會(huì)過濾表,然后表1和表是直角積,然后我們可以通過條件過濾數(shù)據(jù)。當(dāng)然,并不是在所有情況下,子查詢的性能都會(huì)很差;具體的結(jié)果需要在實(shí)際的測(cè)試結(jié)果之后才能得到。更多對(duì)mysql感興趣的讀者可以看看這個(gè)網(wǎng)站的主題:mysql事務(wù)技巧總結(jié)。希望這篇文章能幫助你理解mysql數(shù)據(jù)庫插裝。
了解更多mysql相關(guān)子查詢(mysql子查詢和相關(guān)查詢)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。