連接查詢的優(yōu)點是可以用盡可能少的SQL進行查詢。簡化了應(yīng)用和數(shù)據(jù)庫之間的IO調(diào)用。缺點是如果表設(shè)計不好,SQL寫得差,會造成數(shù)據(jù)庫大量的內(nèi)部IO操作,特別是大量沒必要的全表掃描。使用這種方式必須要么是確實要讀取的數(shù)據(jù)量非常大,要么是能夠通過索引等方式控制住全表掃描的數(shù)量。全表掃描在連接情況下的消耗可以說是指數(shù)性的升高的。
子查詢查的缺點是應(yīng)用和數(shù)據(jù)庫之間的IO調(diào)用比較多,損耗了數(shù)據(jù)庫的帶寬。但是優(yōu)點是對原來的被驅(qū)動表來說數(shù)據(jù)是明確的,可以通過大量的索引,特別是主鍵索引避免全表掃描。用哪種沒有一定之規(guī)。要看讀取的數(shù)據(jù)量、表設(shè)計結(jié)構(gòu)、數(shù)據(jù)庫規(guī)模、程序設(shè)計等多種因素綜合考慮。