2013-02-26 2 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

실행 계획은 무엇이라고 말합니까? –

답변

3

짧은 대답 : 각각의 실행 계획을 당겨 봐 가지고

긴 답 : 그것은 사물의 수에 따라 달라집니다 - 인덱스, 테이블 통계, 최적화 알고리즘, 캐싱, 물리적 아키텍처, 데이터베이스 크기 등 등

관련 문제