무거운 쿼리, ajax사용법
본문
게시판 뷰 페이지 마다 해당 쿼리를 불려오려고하니, 딜레이가 어마어마합니다.
이에 해결 방법이 ajax를 사용하면 된다고 하는데...
<?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
저걸 ajax 바꾸다고해도 시간은 비슨합니다 다른 방법을 생각 해보세요
우선은 인덱스를 적절하게 사용하는지 분석해 봐야겠군요.
그럼에도 시간이 많이 걸린다면
cache 사용을 생각봐야죠.
mysql 버전 올리는 것도 방법입니다.
$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`);
답변을 작성하시기 전에 로그인 해주세요.