Extra Form
PHP PHP 5.4
CMS XpressEngine

홈페이지가 느려서 카페24에 요청해서 slowquery.log 파일을 받았습니다.

 

아래는 대표적인 로그파일 내용인데요....

 

해석좀 부탁드릴께요...

---------------------------------------------------------------------------------------

# Query_time: 3.865154  Lock_time: 0.046892 Rows_sent: 1  Rows_examined: 107550
SET timestamp=1608275604;
select count(*) as "count" FROM `xe_documents` as `documents`   WHERE `documents`.`module_srl` not in (0) and `documents`.`module_srl` in (187123) and `status` in ('PUBLIC','SECRET');
# Time: 201218 16:13:25

--------------------------------------------------------------------------------------

 

187123 모듈(게시판)에서 문제가 있다는 것은 알겠는데, 위 "Rows_sent: 1"과 "Rows_examined: 107550"는 무슨 뜻인가요? 

그리고 나머지 부분들도 해석해주시면 정말 고맙겠습니다. 

 

 

  • profile

    Rows_examined: 107550 는 조회되는 건수 이고
    Rows_sent: 1 최종적으로 조회결과의 건수 입니다.

    저 표기가 조금씩 다른데 카운터 했을때에는 count 의 결과 row는 몇건이다 라는 한줄로 표기 되기 때문에 1 row가 되는것이고
    그 카운트를 하기 위해서 처리한 row가 107550 이라는 의미가 될것 같습니다.

    즉 count 결과는 107550 가 되겠지요 

    그리고  그 카운트 하는데 3.865154 초가 걸린거고요 

  • ?
    "xe_documents 테이블의 187123 모듈(게시판)에서 'documents' 갯수를 찾기 위해 107550번을 조회했고 그 시간은 3.865154 초 걸렸다"

    이렇게 해석하면 될까요?
  • ? profile

    module_srl` not in (0)
    and `documents`.`module_srl` in (187123)
    and `status` in ('PUBLIC','SECRET');

    module_srl = 187123 이면서 , status 상태값이 'PUBLIC','SECRET' 이면서 module_srl` not in (0) 인 조건

    으로 나온 결과값이 107550 건입니다.
    107550는 조회한 횟수가 아닙니다 조회를 햇을때의 where 에 만족하는 건수 입니다.

  • ? profile
    가능하시면 sql 플랜결과도 보면 좋겟네요

    EXPLAIN EXTENDED
    select count(*) as "count"
    FROM `xe_documents` as `documents`
    WHERE `documents`.`module_srl` not in (0)
    and `documents`.`module_srl` in (187123)
    and `status` in ('PUBLIC','SECRET');
  • profile ?
    감사합니니다. 결과작으로는,

    "모듈이 비어 있지 않으면서( module_srl` not in (0)), 187123번 모듈(게사판)에서 documents 상태값이 'PUBLIC(공개)','SECRET(비밀글)'인(=모든 게시물)의 갯수를 찾으니,
    만족하는 건수가 107550개 인데, 3.865154초 소요되었다"

    이렇게 해석되는 군요...

    187123번 모듈(게사판)의 실제 게시글 수도 107550개와 일치합니다..
    결론적으로는, 187123번 게시판의 개시글 수가 많아서 속도가 느리다는 얘기로 보이는데요....

    임시방편적인 해결방법으로 아래의 방법은 어떤가요?

    1) 사용자가 187123번 게시판의 특정 글을 클릭했을때
    2) 해당 게시물 보기에서는 본문(댓글도 함께)만 보여주고
    3) 본문하단에 보여지는 목록리스트를 출력하지 않도록 설정하면,
    4) 게시판 게시물 수를 찾는 횟수를 줄일 수 있을 것이니,
    5) 속도저하 문제는 해결할 수 있을까요?
  • ? profile
    게시판 목록 출력하는데 시간이 걸린다면 당연히 도움이 되겠죠. 시도해 보시면 바로 확인 되실 것 같습니다.

    추가적으로 근본적인 해결은 아니지만 슈퍼캐시모듈을 설치하셔서 게시판 개시 기능을 사용해 보세요. 지금 부하가 많이 걸리는 부분을 캐시해서 반복작업 하지 않고 캐시 기간 동안에는 빠르게 출력해 줍니다.
    물론 캐시라는 기술은 캐시를 갱신하는 대상에게는 똑같은 긴 시간이 요구되긴 합니다. 캐시 이후 다른 방문자들은 그 덕에 빠른 출력이 되는거죠.

    슈퍼캐시 기능 중 가장 추천하는 기능이 게시판 캐시 기능입니다.(슈퍼캐시 개발자 분께서 ..)
  • profile ?
    슈퍼캐시가 있었군요 ^^ ;
    사용해 봐야겠습니다. 주말지나고 사용자들이 많아지는 월~화요일 붐비는 시간대의 결과가 기대됩니다.
  • ? profile
    카운터 쿼리라서 목록일까 싶습니다
    저 쿼리가 어느 목적으로 쓰이는지를 더 확인해보셔야 할것 같습니다