채택완료

무거운 쿼리, ajax사용법

게시판 뷰 페이지 마다 해당 쿼리를 불려오려고하니, 딜레이가 어마어마합니다.

이에 해결 방법이 ajax를 사용하면 된다고 하는데...

 

Copy
<?php


$sql = "
  select a.mb_id, b.as_photo, b.mb_nick, b.mb_email, b.mb_homepage, b.as_level
    from g5_point a left join g5_member b on (a.mb_id = b.mb_id)
   where a.po_rel_table = '{$bo_table}'
     and a.po_rel_id = '{$wr_id}'
     and a.po_rel_action = '열람'
   order by a.po_datetime desc
";

$result = sql_query($sql);

for ($i = 0; $row = sql_fetch_array($result); $i++) {
  
                    echo apms_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage'], $row['as_level']);
}
    
    ?>

 

해당 소스를 ajax이용하려면 어떻게 하면 되는 건가요? 

 

|

답변 3개 / 댓글 2개

채택된 답변
+20 포인트

$sql = "

~

";

echo $sql;

exit;

로 sql 문 추출 후 직접 실행하여 시간을 측정해보고, https://sir.kr/g5_tip/15716

해당 실행시간을 단축시키는 것이 좋습니다. 

 

다음의 SQL문 실행으로, 인덱스를 생성해주면 쿼리속도가 향상될 수도 있습니다.

 

ALTER TABLE `g5_point`
ADD INDEX `po_rel_table_po_id_po_rel_action` (`po_rel_table`, `po_id`, `po_rel_action`);

 

ALTER TABLE `g5_point`
ADD INDEX `po_datetime` (`po_datetime`);

우선은 인덱스를 적절하게 사용하는지 분석해 봐야겠군요.

그럼에도 시간이 많이 걸린다면

cache 사용을 생각봐야죠.

mysql 버전 올리는 것도 방법입니다.

저걸  ajax 바꾸다고해도 시간은 비슨합니다 다른 방법을 생각 해보세요

답변에 대한 댓글 2개

아... 그런가요 답변 감사합니다!
혹시 자바스크립트 등으로 클릭시 나오는 방식도 대처 방법이 안 될까요?
https://sir.kr/gujik/1290 에 저의 연락처가 있습니다

핸드폰으로 연락주시면 같이 고민 해드릴게요

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