mysql優(yōu)化join語句

優(yōu)化join語句:
mysql4.1 開始支持sql 的子查詢。這個技術(shù)可以使用select 語句來創(chuàng)建一個單列的查詢結(jié)果,然后把這個結(jié)果作為過濾條件用在另一個查詢中。使用子查詢可以一次性的完成很多邏輯上需要多個步驟才能完成的sql 操作,同時也可以避免事務(wù)或者表鎖死,并且寫起來也很容易。但是,有些情況下,子查詢可以被更有效率的連接(join)..
替代。
假設(shè)我們要將所有沒有訂單記錄的用戶取出來,可以用下面這個查詢完成:
select * from customerinfo where customerid not in (select customerid from salesinfo )
如果使用連接(join).. 來完成這個查詢工作,速度將會快很多。尤其是當(dāng)salesinfo表中對customerid 建有索引的話,性能將會更好,查詢?nèi)缦拢?br />select * from customerinfo left join salesinfoon customerinfo.customerid=salesinfo.customerid
where salesinfo.customerid is null
連接(join).. 之所以更有效率一些,是因為mysql 不需要在內(nèi)存中創(chuàng)建臨時表來完成這個邏輯上的需要兩個步驟的查詢工作。

以上就是mysql優(yōu)化join語句的內(nèi)容,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)(www.php.cn)!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊6 分享