query 관련 질문드립니다.

query 관련 질문드립니다.

QA

query 관련 질문드립니다.

본문

특정 게시판을 오랫동안 사용하다보니 
글 수가 4만게 정도가 쌓였습니다. 

 


그런데 게시판 특성상 ( 방을 예약하는 캘린더를 사용하는 게시판입니다.)
캘린더에 날짜마다 10개의 방이 나오고  각 방마다 전체 테이블에서 예약된 수를 서치하다보니
엄청난 렉이 걸립니다. 

캘린더특성상  1일부터 31일까지 td가 있고  각 td에서 방열개씩 다 들어가며, 
각 방마다 4만개의 글중 예약된 글 수를 서치하다보니 생기는 렉인것같습니다.

 

for안에 for안에 for가 돌아가는 격이어서요 .. ㅠㅠ

 

결론은..  서치 범위를 최소화 할 수 있는지 궁굼합니다. 

어차피 4만개에서 지난 날짜들은 다 누적만되어있는 데이터다보니 

최신글 1000개행이던지 몇개의 행이던지 

그 범위를 좁혀서 sql_query서치를 할 수 있을까요??

 

 

 

이 질문에 댓글 쓰기 :

답변 2

select * from 테이블명 limit 0, 100 최신0번부터 100번까지 뽑아온다.

아니면 조건을 주어서 일치시켜야지요

1일날 누가 방 신청을 하면 1일은 wr_10에 1을 넣어주고 2일은 wr_10에 2를 넣고

이런식으로 고유값을 넣어주면 더편하게 검색도 가능하겠네요

select * from 테이블명 where wr_10 = '1' limit 0 ,100 1일에 신청한 사람을 0~100행까지 검색

이미 각 방별로 limit 도 걸어놨는데 똑같네요..

현재 사용한 쿼리입니다.
$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부터, 지점별방수 로 뽑은 쿼리에요..

답변을 작성하시기 전에 로그인 해주세요.
전체 24

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT