슬로우 쿼리가 왜 걸리죠?

슬로우 쿼리가 왜 걸리죠?

QA

슬로우 쿼리가 왜 걸리죠?

답변 6

본문

홈페이지가 엄청 느려지고

 

mysql connect error 나면서 끊깁니다.

 

그래서 슬로우 쿼리 로그 남는걸 보면

 

select * from g5_write_board_free where wr_parent = 520705   and wr_is_comment = 1  and wr_comment_reply = ''  and wr_comment = 3;
 

이런식으로 쿼리가 쭉 남는데 이게 뭐가 문제라서 슬로우 쿼리가 3초 이상 걸리나요?

이 질문에 댓글 쓰기 :

답변 6

select * from 가 문제일거라 생각되네요.

*(스타)를 사용하시면 모든 필드를 다 가지고 오는 컨셉이라..

스타를 사용하지 마시고, 필요하신 필드만 뽑아서 사용하시는 걸 추천합니다.

위의 쿼리는 간단한 쿼리라 실행시간이 많이 걸리지는 않습니다. 하지만 스타를 쓰시면 모든 필드를

다 뽑기 때문에 뽑아서 메모리에 올리는 시간이 엄청 걸려서 슬로우쿼리가 생기는 이슈입니다.

select wr_1, wr_2 from 이런식으로 뽑고자 하는 필드를 지정하세요.

일단 번호만 봐도 520705  50만 건이 넘는데요..

기본적으로 데이터가 많고 사용자가 많으면 슬로우쿼리가 걸리게됩니다.

튜닝을 하시거나 하드웨어 보강이 필요합니다.

 

비용분석이라고 하던가... 잘 기억은 안납니다.

더 좋은 분이 답변을 해주실거라 생각은 됩니다만, 참고하시라고 올려봅니다.

2949618301_1594619091.5228.png

 

MySQL Workbench 에서 위의 쿼리를 실행하면

이런 화면을 보실 수 있습니다.

(전 데이터가 몇개 없어서 저 정도만 보이는데요...)
 

테이블 조회시 속도에 영향을 주는건 거의 Where 절의 검색이거나 테이블 간 Join 등과 관계가 있습니다.

제가 올려드린 화면을 같은 방식으로 캡쳐해서 올려주시면...

더 좋은 답변을 얻을 수 있을 거라고 생각됩니다.

 

저라면 운영하시는 웹사이트를

어딘가에 DB까지 똑같이 설치하고 Index를 추가하거나 빼거나... 다시 정렬시키거나 할텐데...

이건 운영서버에서 잘못 건들면 독이 될 수 있으니 설명을 배제하겠습니다.

 

아... 물론 서버는 웬만큼은 되어야겠죠.

웬만한 서버라면 50만건 정도를 많다고 볼 수는 없습니다.

(PC거나 시놀로지 같은 NAS라면 말이 달라지겠지만요.)

 

 

 

튜닝은 인덱스(지름길)를 만드는 것이 있고

하드웨어를 보강하는 방법

아니면, 캐시서버를 장착하는 방법이 있는데요.

위의 케이스는 필드만 지정해도 효과를 보실듯 합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #css ×
전체 2,087
© SIRSOFT
현재 페이지 제일 처음으로