본문 바로가기
개발/DB

[SQL] select 절 안에서 select

by 설이주인 2022. 5. 9.

프로젝트 진행 중

# Table tb_a, tb_b inner join a.sno = b.sno
# a에는 없는 b.level을 검색해서 들고 오고 싶었음

 

본래 맡고 있던 프로젝트 해결하고 온 사이에 쿼리가 수정 되어있었다..!!

 

수정의 요인은 >>성능 저하<<

 

다행이 성능 저하의 이유를 들을 수 있었다..!

 

select from 에서 inner join을 한번 하고

다시 select from에서 inner join을 한게 문제였다...

#작성했던 코드가 없는 관계로 대략 기억하는 상황까지 작성했다.
#tb_a, tb_b

select *
from 
(select * 
    from tb_a a
    inner join tb_b b
    on a.sno = b.sno) as c
inner join tb_a
on c.sno = a.sno

where ...

 

마음의 상처를 입으며 리더님께서 작성하신

select 절에서 다른 테이블에 접근해서 select 하는 쿼리를 보게 되었다.

 

개인 프로젝트는 단위가 작아서 쿼리 성능에 대해서 깊게 생각하지 않았는데.. 새로운 발견이다..!

 

검색 중에 예시도 있고 좋은 글을 찾아서 첨부한다.

 

https://vivi-world.tistory.com/24

 

[SQL] 쿼리 튜닝 : select 문 안에 서브쿼리

원래 쿼리 ) SELECT DATE_FORMAT(CONCAT(JOB_DATE,JOB_TIME),'%Y-%m-%d %H:%i:%s') AS collect_date , CAPACITY_ID , B.pattern_code_name AS CAPACITY_NAME , CAPACITY_SUB_ID, , B2.pattern_code_name AS CAPACI..

vivi-world.tistory.com

https://gywn.net/2012/05/mysql-bad-sql-type/

 

MySQL 성능 죽이는 잘못된 쿼리 습관 – gywndi's database

Overview 안정적인 서비스 유지를 위해서는 쿼리 작성이 상당히 중요합니다. 잘못된 쿼리 하나가 전체적인 퍼포먼스를 크게 저해하기도 하고 최악의 경우 장애 상황까지 치닫기 때문이죠 단일 코

gywn.net

 

쿼리... 잘 생각하고 작성하자... ㅠㅅ ㅠ