테스트 사이트 - 개발 중인 베타 버전입니다

슬로우 쿼리가 왜 걸리죠? 채택완료

홈페이지가 엄청 느려지고

 

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개

채택된 답변
+20 포인트

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

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

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

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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

맞는 얘기지만, 이 이슈는 이걸로 발생하는 문제가 아닙니다.

댓글을 작성하려면 로그인이 필요합니다.

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

하드웨어를 보강하는 방법

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

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

게시물과 접속자가 많아져서 발생하는 문제입니다.

제작의뢰에서 전문가의 도움을 받으시는게 좋을것 같네요. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

데이터가 많아서 느려지는것도 있겠지만 서버쪽 하드 체크 해보세요

로그 남기려다가 저장용량 부족으로 에러 나거나 읽기 실패 일수도 있습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

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

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

 

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

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

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

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

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

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

 

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

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

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

 

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

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

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

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

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

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

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

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

튜닝이라고 하면 어떤거 일까요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록