2013-02-26 106 views
2

Hy!我只想問一個簡單的問題。如果我們有像JOIN或子查詢速度更快嗎?

  • 用戶
  • 和交叉表USER_GROUP表,因爲用戶可以在多個組和一組obiously可以包含多個用戶

,我想讓我的「朋友」那麼哪個查詢更快?

SELECT DISTINCT UG1.user_id 
      FROM user_group AS UG1 
      WHERE UG1.group_id IN (SELECT UG2.group_id 
            FROM user_group UG2 
            WHERE UG2.user_id = 87) 

SELECT DISTINCT UG1.user_id 
      FROM user_group UG1 
      JOIN user_group UG2 ON UG1.group_id = UG2.group_id 
      WHERE UG2.user_id = 87 

如果答案是數據庫特定的,那麼在哪個數據庫哪個方法更快?

+0

執行計劃說什麼? – 2013-02-27 23:08:07

回答

3

答案很簡單:拉一個執行計劃爲每看看

長的答案:這取決於很多事情 - 索引,表統計數據,優化算法,緩存,物理架構,數據庫大小等etc等