테이블이 2~3개 또는 더 있을수도 있습니다.
모든 테이블은 같은 키값이 pk로 잡혀 있습니다.
A, B, C 라는 테이블이 있고
각각의 테이블은 a라는 컬럼이 pk가 되는거죠.
각각의 테이블은 pk는 같지만 데이터는 다를 수 있습니다.
예로 A라는 테이블은 데이터 건수가 100개 이지만 B 테이블은 50개, C테이블은 70개
A라는 테이블이 3개의 테이블중 기본 테이블 입니다 .A에는 데이터가 무조건 있고, B, C는 위처럼 데이터 가
있을 수도 있고 없을 수도 있습니다.
그렇다면
각 테이블에서 데이터를 뽑아올 경우
3개의 테이블을 모두 outer 조인으로 select를 해서 데이터를 뽑아오는 것이 유리한지
아니면 각각 테이블마다 어차피 검색 조건이 같으므로 각각 원하는 데이터를 조회하는게
유리한지 궁금해서 올립니다.
제 생각에는 어차피 조인을 해도 A B C테이블이 pk이자 검색조건이 같아서 조인하는것과
따로 검색하는 것이 큰 차이는 없을 것 같습니다만.
별로 고민 안하셔도 될꺼 같습니다.
그말씀은 즉? 둘다 같다? 인지요? ^^
조인하는것과 각각조회하는것이 뭘 의미할까요?
서로 다른 것을 말하는 듯 한데요.
다른걸로 성능비교가 되나요?
성능 비교는 같은걸 다르게 구현했을 때 하는거죠.
아예 다른걸 어찌 성능비교를 하나요?
아 그런가요? 마농님.
흠. 전 단지 두개 세개 테이블에서 데이터를 가져올때
테이블 조인해서 A테이블의 컬럼 a와
B테이블 컬럼 b, C테이블 컬럼 c를 가져오는거랑
따로 조회해서 A.a, B.b, C.c, 를 가져오는게 둘이 효율상 무엇이 나은지 궁금했거든요.
조회 조건은 3개의 테이블이 pk가 같아서 A left outer join B , A left outer join C를 해서
가져오는게 효율상 따로 조회해서 가져오는거보다 나은지가 궁금했거든요.
뽑아오는 데이터는 동일해서 궁금했었습니다.
쿼리로 보자면 아래 1번과 2번 방식입니다.
1.
select A.a , B.b
from A left outer join B on A.p = B.p
where A.p='value';
2
select a from A where p='value';
select b from B where p='value';
어차피 대량 자료가 아닌 유니크한 자료 검색이라면?
차이가 난다 한들 체감할수 없습니다.
일단 억지로라도 비교해 보자면...
SQL 을 Call 하는 횟수 차이가 성능차이로 이어진다고 볼 수 있습니다.
쿼리를 두번 수행하는 비용보다는 한번 수행하는 비용이 작겠지요.
아 네 ..답변 감사 드립니다.
데이터가 테이블에 따라서 200~300만건 정도 있는 테이블이 기본이 되고
나머지는 조회 하는 테이블은 저렇게 많지 않습니다.
답변주신데로 모든 테이블이 유니크한 값으로 조회를 하는지라
질문을 올린거였습니다.
어차피 200~300만건이라도 유니크한 pk를 오로지 검색조건에만 사용하는거여서
.. ...
음 쿼리를 두번하는것 보단 조인으로 한번하는게 약간은 낫다 이거네요.
허나? 굳이 pk 를 이용한 검색인지라 큰 차이는 없을 거라는 뜻으로 이해하겟습니다.