query 관련 질문드립니다. 채택완료
김배
9년 전
조회 3,438
특정 게시판을 오랫동안 사용하다보니
글 수가 4만게 정도가 쌓였습니다.
그런데 게시판 특성상 ( 방을 예약하는 캘린더를 사용하는 게시판입니다.)
캘린더에 날짜마다 10개의 방이 나오고 각 방마다 전체 테이블에서 예약된 수를 서치하다보니
엄청난 렉이 걸립니다.
캘린더특성상 1일부터 31일까지 td가 있고 각 td에서 방열개씩 다 들어가며,
각 방마다 4만개의 글중 예약된 글 수를 서치하다보니 생기는 렉인것같습니다.
for안에 for안에 for가 돌아가는 격이어서요 .. ㅠㅠ
결론은.. 서치 범위를 최소화 할 수 있는지 궁굼합니다.
어차피 4만개에서 지난 날짜들은 다 누적만되어있는 데이터다보니
최신글 1000개행이던지 몇개의 행이던지
그 범위를 좁혀서 sql_query서치를 할 수 있을까요??
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
9년 전
for문 밖에서 공통적인 쿼리로 배열만들어서 값 생성 후
for문 안에서 쿼리 지워주고 카운팅만 출력해서 자체 해결했습니다 .
감사합니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
현재 사용한 쿼리입니다.
$jj = array('지점1','지점2','지점3','지점4','지점5','지점6','지점7','지점8','지점9','지점10','지점11');
//지점별 방수
$jj_room = array('330','93','124','93','93','124','93','124','124','124','124');
for($j=0;$j<count($jj);$j++){
//조건에 따른 글의 수 뽑기
$row = sql_fetch(" select count(*) as cnt from 해당테이블 where wr_5 = '날짜' and wr_3 = '{$jj[$j]}' order by wr_id desc limit 0, {$jj_room[$j]} ");
$i_day = $row['cnt'];
$aria_tit = $jj[$j];
$aria_tit = urlencode($aria_tit);
echo '<p>';
echo '<a href="글쓰기링크">'.$jj_name[$j].'</a>';
echo '(<span>'.$i_day.'</span>/'.$jj_room[$j].')';
echo '</p>';
}
각 글마다 필드에 구분자가 wr_5에는 예약한 날짜, wr_3에는 지점명이 저장되어있어서
해당 조건이 맞는거에 대해 최신글 기준 lilmit를 0부터, 지점별방수 로 뽑은 쿼리에요..