아까 글 적었다가, 버그 발견해서 다시 수정해서 해결했습니다.

 

일딴 기본적으로 menunew 모듈에서 문제가 발생되고 있는 사항입니다.

 

아까 인덱스 부분의 문제점을 제기했는데 다른쪽의 인덱스와 연관되어 있네요.

 

일딴 느려지는 원인은 아마 댓글 작성시 댓글에 대한 최신정보를 가져오는 쿼리가 돌아가게 되는데 이때 댓글의 갯수가 많으면 많아질수록 엄청 느려지게 됩니다.

 

아마 쿼리자체가 equl (같은값)인 것으로 비교하는 코드가 있는데 그 부분에서 댓글 공개 여부 확인하는 부분인 status 칼럼의 인덱스가 붙어 있음에도 불구하고 module_srl 이랑 같이 검색하는 방식으로 쿼리가 돌아가다보니 결국은 인덱싱이 안되어서 생기는 문제점이 있는 겁니다.

 

제가 자꾸 인덱스 인덱싱 이렇게 말씀드리는 이유는 디비에 갯수가 많아지면 많아질수록 쿼리는 무조건 느려지게 됩니다.

 

그런데 이 인덱싱이 재대로만 되어있으면 쿼리속도는 바로 줄어들게 됩니다.

 

해당부분은 아래에 속도 측정 결과가 증명해줍니다.

 

이 쿼리를 재대로 돌리면서 인덱싱을 재대로 하고 싶으면 다음의 파일에서 코드를 변경처리하면됩니다.

 

modules/menunew/queries/getNewestCommentList.xml 파일

 

해당 파일을 아래 코드로 바꾸세요

 

<query id="getNewestCommentList" action="select">
    <tables>
        <table name="comments" />
    </tables>
    <columns>
        <column name="*" />
    </columns>
    <conditions>
        <condition operation="equal" column="module_srl" var="module_srl" filter="number" />
        <condition operation="equal" column="document_srl" var="document_srl" filter="number" pipe="and" />
    </conditions>
    <navigation>
        <index var="sort_index" default="list_order" order="order_type" />
        <list_count var="list_count" default="20" />
<offset var="list_offset" default="0" />
    </navigation>
</query>

 

이렇게 하시면 그나마 괜찮게 돌아갈거예요.

 

쿼리 속도 측정

 

변경 전

- Exec Time:  3.3771 sec

변경 후 

- Exec Time:  0.0367 sec

 

다만 공개되지 않은 댓글도 함께 채크하는 방식으로 되어있어서 실제로 등록이 되지 않은 댓글에 의해 새로운 업데이트 표시가 나타날 수는 있습니다.

람보

profile
람보입니다.
  • profile

    우와 안그래도 2.0.4 업데이트 이후에 특정 게시판에서 글 작성시 매우 느려지는 걸 발견해서 php 버전업에 이것저것 다 했었는데요. 결과에 큰 영향을 미쳤던 모듈들이 더 있었습니다.

    1. 알림모듈에서 특정 게시판의 새글 알림 설정을 관리자에게 발송하게 해둔 게시판 - 극심히 느려졌음
    2. 게시판 글 구독 모듈이 세팅되어 있을 경우 - 왜인지 모르지만 극심히 느려져서 삭제

    3. 제일 큰 저하는 웹푸시 모듈이 관련이 있었습니다. 

    일단 제 경우에는 1,2,3번만 해결해도 매우 빨라졌으나 여전히 좀 느렸었는데, 람보님 팁을 바로 적용해보겠습니다.

  • profile
    질문이 있습니다
    저같은 경우는
    modules/menunew/queries/
    이 경로가 아닌
    https://github.com/rhymix/rhymix/tree/master/modules/comment/queries
    여기에 말씀하신 xml 파일이 있는데 이걸 수정해도 괜찮을까요?
  • profile profile
    절대로 안됩니다
  • profile profile
    어떤 상황에서 문제가 잇엇는지 이슈로 남겨주세요
  • profile profile

    저는 xe에서 바로 라이믹스 2.0.24로 올린 케이스입니다.
    제 ftp에는 menunew디렉터리가 없더라구요.
    그래서 xml을 검색해보니 https://github.com/rhymix/rhymix/tree/master/modules/comment/queries
    이 경로가 나왔습니다.

    1줄 요약 menunew디렉터리가 없을땐 어떻게하나입니다

  • profile profile
    없으면 다른곳에서 원인 찾으세요.

    menunew 모듈이 무조건 느려짐의 원인은 아닙니다.

    사용하시는 서드파티에 따라 증상이나 원인은 다양합니다.

    여기에서 거론한 부분은 이런 경우도 있다 라는 경험을 공유한 것으로 이해하시고 혹시나 나중에 적용하실일 생기실때 쓰시라고 적어둔 팁이예요
  • profile profile
    비슷한 파일이라고 임의로 판단하시면 안됩니다
    악성 종양과 코 모두 튀어나와있지만 코는 제거하면 안되듯이 비슷해 보인다고 그냥 수정하시면 큰일납니다.