나는 이런 식으로 뭔가를 가지고 :왼쪽에 가입하거나 선택에서 선택 (SQL - 쿼리의 속도)
그것은 내가 3 개 선택하지 않고 내가 할 수 방법을 알고 싶어요, 선택 3가SELECT CompanyId
FROM Company
WHERE CompanyId not in
(SELECT CompanyId
FROM Company
WHERE (IsPublic = 0) and CompanyId NOT IN
(SELECT ShoppingLike.WhichId
FROM Company
INNER JOIN
ShoppingLike ON Company.CompanyId = ShoppingLike.UserId
WHERE (ShoppingLike.IsWaiting = 0) AND
(ShoppingLike.ShoppingScoreTypeId = 2) AND
(ShoppingLike.UserId = 75)
)
)
, 어느 하나는 100 만 건의 기록을위한 더 나은 속도가 있습니까? "select in select"또는 "left join"?
성능이 문제가되면 하드웨어의 데이터베이스에서 데이터의 각 버전을 시험해보고 더 빠른 버전을 확인하십시오. –
두 가지 질문이 있습니다. 왼쪽 조인을 준비 할 수 없습니다. 큰 데이터에 대해서는 테스트하지 못했습니다. ( – dan
MS SQL이 사용자를 위해 수행한다면 옵티마이 저가 최적화 될 것이므로 걱정하지 마십시오. 귀하의 쿼리. companyId에 대한 인덱스를 만들면 MS SQL이 쿼리를 훨씬 빠르게 수행 할 수 있습니다. – Mahmoud