테스트 사이트 - 개발 중인 베타 버전입니다

query 관련 질문드립니다. 채택완료

김배 9년 전 조회 3,438

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

 


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

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

 

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

 

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

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

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

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

 

 

 

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

답변 2개

9년 전

for문 밖에서 공통적인 쿼리로 배열만들어서 값 생성 후 

for문 안에서 쿼리 지워주고 카운팅만 출력해서 자체 해결했습니다 .

 

감사합니다.

로그인 후 평가할 수 있습니다

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

그누위즈

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행까지 검색

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

김배
9년 전
이미 각 방별로 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부터, 지점별방수 로 뽑은 쿼리에요..

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

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

로그인