database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Q&A 375 게시물 읽기
No. 375
조인 대 여러번 쿼리의 득과 실은?
작성자
김현(nixor)
작성일
2002-04-19 17:13
조회수
6,686

같은 결과를 얻을 수 있는 두 쿼리중 어떤것이 더 나은건가요?

 

#첫번째 쿼리#

select id,name,gender from profile WHERE pid = 86555

select mn_visit, mn_visit_today, mn_noti from mn_house WHERE pid = 86555

select pic_data from pic_profile WHERE pid = 86555

select savegoods_sn from save_goods WHERE pid = 86555

 

#두번째 쿼리#

SELECT profile.id AS id, profile.name AS name, profile.gender AS gender,

mn_house.mn_visit AS mn_visit, mn_house.mn_visit_today AS mn_visit_today,

mn_house.mn_noti AS mn_noti, pic_profile.pic_size AS pic_size,

pic_profile.pic_data AS pic_data, save_goods.savegoods_sn AS savegoods_sn

FROM goods INNER JOIN

save_goods ON goods.goods_sn = save_goods.savegoods_sn RIGHT OUTER JOIN

mn_house INNER JOIN

profile ON mn_house.pid = profile.pid ON

save_goods.save_pid = profile.pid LEFT OUTER JOIN

pic_profile ON profile.pid = pic_profile.pid

WHERE profile.pid = 86555

 

즉, 조인하는게 나은가요?

쿼리를 여러번 날리는게 나은가요?

두번째가 나을 것 같은데...정확한 이유를 설명해주시면

정말 고맙겠습니다..

개발서버에서 테스트해보니 아무차이가 없던데...

데이타 양이 적어서 그런것인가? 대용량 데이타에서는 차이가

확실히 날까요?

 

아니면, 논의할 가치도 없는 주제인지요?

이 글에 대한 댓글이 총 1건 있습니다.

거의 대부분의 경우에는 조인이 더 낫습니다.

 

여러번 쿼리를 날릴 경우, 일단 application과 DBMS 사이에 통신로드가 많아지게 되죠. 그리고 호스트변수를 적절하게 사용하지 못한다면 그때마다 모든 SQL문을 parse하게 되므로 퍼포먼스가 조인보다 확실히 떨어집니다.

 

여러번 쿼리의 두번째 문제는 이렇습니다: application에서 조인의 역할을 대신해주어야 하는데, (즉 한번의 select를 통해 다음 쿼리의 where 조건에 들어갈 수 있는 key들의 값을 어디엔가 저장해두어야되죠) 만일 첫번째 select에서 100만개, 혹은 1000만개의 레코드가 선택되어버린다면, 수백만개의 레코드값을 배열이라든가 하는 곳에 저장해두어야 한다는 겁니다.

 

(게시판처럼 첫번째 select문의 결과가 20~40개 정도로 고정된다면 그나마 나은 경우라고 할수 있겠지요)

 

가급적이면 조인을 사용하시고, 계산에 대한 부담은 모두 DBMS로 떠넘기시기 바랍니다.

진헌규님이 2002-04-24 15:19에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
380디비 설계 이렇게 하면 되나요 [2]
y1009
2002-04-27
5946
379클럽 DB 설계시 테이블 생성 질문입니다. [2]
배판주
2002-04-26
5675
378[초보]고수님들 테이블을 어떻게 만들면...도와주세여... [2]
오양균
2002-04-26
5659
375조인 대 여러번 쿼리의 득과 실은? [1]
김현
2002-04-19
6686
373관계형과 객체형의 차이에 대해 설명 부탁합니다.
장지욱
2002-04-17
5755
372SQL server로 odbc 연결 때문에.. ㅠ_ㅠ;; 애로사항에 꽃이 피고 있습니다. ㅜㅜ;;
방병우
2002-04-17
5523
371몇 천개의 문서 화일을 어떻게 데이타베이스화 해서 관리할수 있을까요? [1]
황재연
2002-04-14
5997
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다