pat coding

[DB] SELECT 문 쿼리 시간 문제 해결 본문

Database

[DB] SELECT 문 쿼리 시간 문제 해결

uuukpyo 2021. 2. 16. 18:01
728x90

이번엔 DB 데이터 출력(select)에 대해서 글을 작성하려고 한다.

 

회사 관리자 페이지가 있는데 운영초반엔 1초안에 페이지 출력이 되어 별 문제를 못느꼈었다.

근데 데이터가 점점 쌓이다보니 최근들어 화면출력하는데 5초정도 시간이 걸려

이 문제를 해결하고자 원인을 찾기 시작했다.

 

쿼리를 출력해서 프론트페이지에 바로 출력해주는 형태이기때문에

DB 쿼리문을 처리하는데 걸리는 시간이 오래걸리는 것이었다ㅠㅠ

하여 쿼리문을 뜯어보니 문제점을 발견했다.


첫번째문제는 DATE FORMAT을 통한 GROUP BY, WHERE 사용 이었다.

날짜별로 group by 를 해주려고 형식을 전부 DATE FORMAT 형식으로 변경하여 조건과 그룹핑을 해주고 있었다.

이렇게하면 검색조건에서 KEY가 안걸리고 형식변경하는데 시간이 소요되기에 검색하고자하는 날짜형식을 미리

변경하는 방법으로 수정했다.

그리고 explain 으로 확인해보니 KEY 걸리게 되었다..ㅠㅠ

하지만 이 방법으로도 시간이 1.5초 밖에 단축되지 않았다.....


두번째문제는 INDEX 설정이 안되어 있었다.(이게 제일문제ㅠㅠㅠ)

 

- INDEX : 정한 컬럼들을 기준으로 메모리 영역에 일종의 목차를 생성하는 것

참고 : jojoldu.tistory.com/243

 

WHERE 조건에 있는 컬럼이 KEY가 안걸려있어서 확인해보니 INDEX 설정이 안되어 있었다..

하여 전체 DB 데이터에서 검색하다보니 시간이 오래걸리게 되었다.

하여 INDEX 설정 후 확인결과 동일한 쿼리문이 0.2초만에 검색이 되어 출력되었다^^...

INDEX에 대해 개념은 알고있었는데,,실제로 이렇게 시간이 많이 차이나는지는 몰랐다.


결론..쿼리 시간이 오래걸린다 = KEY 가 안걸려있는지 확인!!!! 하자!

 

 

 

728x90

'Database' 카테고리의 다른 글

Oracle, MySQL 조건문 정리  (0) 2020.04.20
Redis 정리  (0) 2019.12.26
Comments