>> 특정조건의 자료가 있는지 확인만 하면 되는 경우 select count 와 if exists 중
>> 어떤 것이 더 효율적이며, 그 이유는 무엇인가요?
-----------------------------------------------------------------------------
당연히 exists 를 사용하시는것이 효율적입니다.

예를들어서 회원중 한번이라도 주문했던 적이 있는 회원리스트를 본다고 할때

select *
from 회원테이블 where exists (select * from 주문테이블 where 주문테이블.아이디=회원테이블.아이디)

이렇게 쿼리를 했다면 특정회원이 1번 주문을 했던 1000번 주문을 했던
상관없이 주문테이블을 단 한건만 확인을 합니다.

하지만

select *
from 회원테이블 where (select count(*) from 주문테이블 where 주문테이블.아이디=회원테이블.아이디) > 0

이렇게 쿼리를 했다면

한번만 주문을 했던 회원은 한건을 count하겠지만 1000번 주문을 한 회원의 경우
1000건 모두를 읽어서 count를 하게됩니다.

당연히 exists를 사용하는것이 효율적이겠지요...
Posted by 나비:D
:
BLOG main image
by 나비:D

공지사항

카테고리

분류 전체보기 (278)
Programming? (0)
---------------------------.. (0)
나비의삽질 (5)
Application (177)
SQL (51)
Web (27)
etc. (14)
Omnia (0)
---------------------------.. (0)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Total :
Today : Yesterday :