본문 바로가기

자라나라 PM

슬로우쿼리, 슬로우쿼리 해결법

728x90

쿼리 (Query)

- 단어 뜻으로는 '질의', '문의', '묻다', '질문하다' 

- 데이터베이스 등에서 원하는 정보를 검색하기 위해 요청하는 것

- 이러한 질의를 위한 특정한 구조의 프로그램 언어를 사용하기도 하며 대표적으로 SQL (Structured Query Langauge) 이 있다.

- 쿼리문을 작성한다 라고 하면 데이터베이스에서 내가 원하는 정보를 가져오게 하는 코드를 작성하는 것을 말한다.

- 쿼리문을 잘 작성한다 라고 하면  데이터베이스에서 필요한 데이터에 빠르게 접근하고, 데이터를 능숙하게 핸들링한다는 말로도 볼 수 있다.

 

 

 Slow Query 

DBMS 가 클라이언트로부터 요청받은 쿼리를 수행할 때 일정 시간 이상 수행되지 못한 쿼리를 말한다.

길어야 1-2초 걸리는 DB 쿼리가 예상보다 오래 걸리는 경우를 말한다.

 

슬로우 쿼리 로그

지정한 시간 이상이 소요된 쿼리가 기록되는 파일이다.

파일에 기록할 수도 있고, 테이블에 기록할 수도 있다.

 

슬로우 쿼리 로그는 에러가 발생한 쿼리를 기록하지 않는다.

제너럴 로그에서는 에러가 발생한 쿼리를 포함해서 모든 쿼리를 기록하기 때문에 두 개의 로그를 모두 활성화하면 프로파일링에 더 도움된다.

 

서브쿼리

쿼리 안에  있는 쿼리를 말한다.

 

 

슬로우 쿼리를 해결하려면..

어떤 쿼리가 문제인지 확인해야 한다.

수행 시간이 오래 걸리는 쿼리를 잡기 위해서 슬로우 쿼리 로그를 활성화한다.

 

※ 다만 여기서도 슬로우 쿼리 수집 자체가 서버의 안정성에 부담이 될 수도 있다는 점을 고려해야 한다. 안하느니만 못할 수도 있는 것이다.

 

해당 쿼리를 찾아 컬럼을 추가하거나, 인덱스를 걸거나 하는 식으로 최적화한다.

그러나 슬로우 쿼리가 발생하는 이유는 다양하기 때문에 복합적으로 판단해서 해결해야 한다.

디비설계, 인덱스 설계가 잘못되었다던가, apache, mysql의 설정, 서버의 설정, 프로그램의 코딩오류 (뺑이치게 하는 코딩법), 부적절한 mysql index, sql 문장, 지나치게 많거나 복잡한 sql query 갯수, 과도하게 트래픽을 유발하는 이미지, 서버의 h/w 용량부족, 부적절한 h/w 설정 등의 수많은 요인 때문에 발생하는 것..

 

하나씩 찾아가면서 수사망을 좁혀가며 원인, 혹은 복합적인 원인들을 찾아 해결해야 한다고 한다.

 

 

 

 

 

 

 

참고)

https://365kim.tistory.com/102

 

SQL 기초 & 자주쓰는 쿼리문 정리

SQL을 배워야하는 이유 데이터베이스와 SQL 우리는 일상 속에서 'DB' 또는 '데이터베이스'라는 단어를 어렵지 않게 접한다. 보통 '관리 목적으로 데이터를 모아놓은 것'을 의미할 때 사용한다. 이 '

365kim.tistory.com

https://velog.io/@breadkingdom/MySQL-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0%EC%9D%84-%EC%9C%84%ED%95%9C-%ED%94%84%EB%A1%9C%ED%8C%8C%EC%9D%BC%EB%A7%81-1

 

[MySQL] 성능 개선을 위한 프로파일링 1편: 슬로우 쿼리 로그

❗ 해당 포스트는 MacOS에서 MySQL 5.7 버전과 InnoDB 스토리지 엔진을 사용하고 있습니다. 최근 웹 애플리케이션 서버의 API의 성능이 너무 낮아 튜닝을 해야 하는 상황이 찾아왔다. 해당 API는 유저가

velog.io

https://hyperconnect.github.io/2020/08/31/improve-slow-query.html

 

PostgreSQL의 슬로우 쿼리에 대처하기

데이터베이스에 적절한 인덱스를 추가하여 슬로우 쿼리를 빠르게 만들고 리소스 사용을 줄인 사례를 공유합니다.

hyperconnect.github.io

https://jsonobject.tistory.com/408

 

MySQL/MariaDB, 슬로우 쿼리 원인 분석 및 성능 튜닝하기

슬로우 쿼리 원인 분석 및 해결 데이터베이스의 슬로우 쿼리를 유발하는 요소는 많다. 형사가 단서를 잡아 하나씩 수사망을 좁혀가듯이 원인을 분석해가야 한다. 가장 먼저 선행되어야할, 그리

jsonobject.tistory.com

http://opencode.co.kr/bbs/board.php?bo_table=gnu4_turning&wr_id=168 

 

웹 사이트 튜닝을 하면서 만나는 오류 :: OpenCode

sfl 제목 내용 제목+내용 회원아이디 회원아이디(코) 이름 이름(코) stx sop and or 검색

opencode.co.kr

 

728x90