@@ 출석부 모듈 7.0.3버전 기준입니다.

 

 

출석부가 근본적으로 느릴 수밖에 없는 것은 알지만

그래도 조금이나마 개선되는 팁입니다.

 

개인적인 의견이며 근본적인 해결책은 아닙니다.

누적된 출석량이 아주 많아 느리신 분이 한 번쯤 시도해볼 만합니다.

 

 

제일 많이 사용되는 부분의 속도 개선입니다.

 

0. 첫 화면에서의 속도 저하 부분

 

출석부 표시 때 30일만큼 출석 확인 쿼리가 실행 됨.

목록의 멤버의 총 출석일 수를 매번 쿼리를 실행 함.

 

 

1. 오늘 이후의 날짜는 출석확인 안 하게 처리

(오늘이 30일이면 그대로지만 1일이면 쿼리가 30번 -> 1번으로 줄어듭니다.)

 

출석부 기본 스킨

modules/attendance/skins/default/list.html 16번 줄

{@$checked = $oAttendanceModel->getIsCheckedA($logged_info->member_srl, $check_date)}

 

아래로 교체

<!--@if($check_date <= date('Ymd'))-->
    {@$checked = $oAttendanceModel->getIsCheckedA($logged_info->member_srl, $check_date)}
<!--@else-->
    {@$checked = 0}
<!--@end-->

 

모바일 스킨도 같습니다.

 

 

2. 인덱스 추가

 

modules/attendance/attendance.class.php

 

2-1 function checkUpdate() 함수 안에 추가

146번 줄

//attendance 테이블에 regdate, member_srl 인덱스 추가
if(!$oDB->isIndexExists("attendance","idx_regdate")) return true;
if(!$oDB->isIndexExists("attendance","idx_member_srl")) return true;

 

 

2-2 function moduleUpdate() 함수 안에 추가

 

if(!$oDB->isIndexExists("attendance","idx_regdate"))
{
$oDB->addIndex('attendance', 'idx_regdate', array('regdate'));
$oDB->addIndex('attendance', 'idx_member_srl', array('member_srl'));
}

 

 

return new Object(0,'success_updated'); 앞

 

 

 

  • profile
    공식 패치 해둘께요.
  • profile
    여러가지 이것저것 테스트하면서 조언도 얻고 그렇게 해서 패치 해뒀어요! ㅎ
  • profile ?
    좋은 모듈 잘 쓰고 있습니다!
    관련 내용을 패치에 반영해주신다니 감사합니다
    위 내용 다음으로는 attendance_weekly 테이블 조회 때 느려집니다.
    더 좋은 방법으로 패치해주실 거라 믿습니다!
  • ?
    소시랑 스킨은 어떻게 해야하나요 ㅜ
  • ? ?
    calendar.html 파일안에 있네요.