질문Q #13096
db 쿼리질문좀 드려도 될까요
크레용팝2016-03-02 20:23:00

 

포럼이 많이 바꼇네요 

깔끔하고 이쁘네요!

 

안녕하세요 

 

다름이 아니라 

간단한 거긴 한데 

test 2 테이블의 아이디를 조회해 

test 1 테이블의 정보를 얻어 오고 싶습니다 

 

select * from test1 where id in (select id from test2 where loc='서울')

간단히 요약해 이러한 문인데요..

이렇게해서 test1의 정보를 얻어오고 싶은데..

문제는 test1에 데이터가 너무 많아 속도가 안나네요 ㅠ..

어떻게 쿼리를 짜야 효율적인지좀 알려주시면 감사하겠습니다 ㅠㅠ 

 

 

 

답변3
#1 한대승(불의회상) 2016-03-03 08:44:00

explain select * from test1 where id in (select id from test2 where loc='서울')

해보세요. 

어디가 병목인지 확인 가능 하실겁니다.

#2 김대영 2016-03-03 09:33:27
왠지 table scan하고 있지 않나 싶네요. 만약 오래된 테이블이고 인덱스가 걸려있다면 index defragment 해보는 것도 어떨까요?
#3 크레용팝 2016-03-03 20:29:13
감사합니다! !