mysql優(yōu)化 mysql兩表關聯(lián)查詢和子查詢的區(qū)別?
mysql兩表關聯(lián)查詢和子查詢的區(qū)別?關聯(lián)查詢(join)與子查詢(in):兩者select的時間復雜度是一樣的(注:這里的select是指獲得數(shù)據(jù)的方式,個數(shù))。唯一不同的是對于in子查詢它每次執(zhí)行
mysql兩表關聯(lián)查詢和子查詢的區(qū)別?
關聯(lián)查詢(join)與子查詢(in):
兩者select的時間復雜度是一樣的(注:這里的select是指獲得數(shù)據(jù)的方式,個數(shù))。
唯一不同的是對于in子查詢它每次執(zhí)行內部查詢的時候都必須重新構造一個JOIN結構(這就是大家常說的會將子查詢轉化成where exists(select 1 from a,b where a.id = b.id )),完成相應的初始化操作,并且在這次內部查詢結束之后,要完成相應的析構函數(shù),如index_init,index_end,而當外部查詢是全表掃描的時候,這些操作的次數(shù)就是它的記錄數(shù),那么它們(構造,析構)所占用的性能也是顯而易見的。簡單一句話子查詢的性能除了查詢外,還消耗在JOIN的構造與析構過程。