MySQL高级 - SQL优化 - 子查询优化
生活随笔
收集整理的這篇文章主要介紹了
MySQL高级 - SQL优化 - 子查询优化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
優化嵌套查詢
Mysql4.1版本之后,開始支持SQL的子查詢。這個技術可以使用SELECT語句來創建一個單列的查詢結果,然后把這個結果作為過濾條件用在另一個查詢中。使用子查詢可以一次性的完成很多邏輯上需要多個步驟才能完成的SQL操作,同時也可以避免事務或者表鎖死,并且寫起來也很容易。但是,有些情況下,子查詢是可以被更高效的連接(JOIN)替代。
示例 ,查找有角色的所有的用戶信息 :
explain select * from t_user where id in (select user_id from user_role );執行計劃為 :
優化后 :
explain select * from t_user u , user_role ur where u.id = ur.user_id;?
連接(Join)查詢之所以更有效率一些 ,是因為MySQL不需要在內存中創建臨時表來完成這個邏輯上需要兩個步驟的查詢工作。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的MySQL高级 - SQL优化 - 子查询优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL高级 - SQL优化 - gr
- 下一篇: MySQL高级 - SQL优化 - or