출석부 위젯 만지작 거리다 발견한 것인데...
출석부 모듈의 출석 리스트를 가져오는 쿼리에서 상당한 속도저하가 발생할 수 있어보입니다.
아래의 XML쿼리 파일 입니다.
getAdminAttendanceList.xml
<query id="getAdminAttendanceList" action="select"> <tables> <table name="attendance" /> <table name="member" type="left join"> <conditions> <condition operation="equal" column="attendance.member_srl" default="member.member_srl" /> </conditions> </table> </tables> <columns> <column name="attendance.attendance_srl" alias="attendance_srl" /> <column name="attendance.regdate" alias="regdate" /> <column name="attendance.member_srl" alias="member_srl" /> <column name="attendance.greetings" alias="greetings" /> <column name="attendance.today_point" alias="today_point" /> <column name="attendance.today_random" alias="today_random" /> <column name="attendance.ipaddress" alias="ipaddress" /> <column name="attendance.att_random_set" alias="att_random_set" /> <column name="attendance.present_y" alias="present_y" /> <column name="attendance.a_continuity" alias="a_continuity" /> </columns> <conditions> <condition operation="like_prefix" column="attendance.regdate" var="now" /> <condition operation="equal" column="attendance.member_srl" default="member.member_srl" pipe="and"/> </conditions> <navigation> <index var="sort_index" default="attendance.regdate" order="asc" /> <list_count var="list_count" default="5" /> <page_count var="page_count" default="5" /> <page var="page" default="1" /> </navigation> </query>
전혀 사용하지않는 member테이블을 attendance테이블에 left join후 where절을 수행 합니다.
이는 attendance테이블에 자료가 쌓일수록 심각한 속도 저하로 이어집니다.
예전에 사용했던 쿼리중 정리안되고 남아 있는것이라면 정리가 필요 해 보입니다. 아래처럼 수정해도 결과는 동일합니다.
<query id="getAdminAttendanceList" action="select"> <tables> <table name="attendance" /> </tables> <columns> <column name="attendance.attendance_srl" alias="attendance_srl" /> <column name="attendance.regdate" alias="regdate" /> <column name="attendance.member_srl" alias="member_srl" /> <column name="attendance.greetings" alias="greetings" /> <column name="attendance.today_point" alias="today_point" /> <column name="attendance.today_random" alias="today_random" /> <column name="attendance.ipaddress" alias="ipaddress" /> <column name="attendance.att_random_set" alias="att_random_set" /> <column name="attendance.present_y" alias="present_y" /> <column name="attendance.a_continuity" alias="a_continuity" /> </columns> <conditions> <condition operation="like_prefix" column="attendance.regdate" var="now" /> </conditions> <navigation> <index var="sort_index" default="attendance.regdate" order="asc" /> <list_count var="list_count" default="5" /> <page_count var="page_count" default="5" /> <page var="page" default="1" /> </navigation> </query>
@람보님 확인 해 보시고 모듈에 적용을 부탁 드립니다.