2013-02-26 109 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等