list.php에서 쿼리문 확인좀 부탁드립니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

list.php에서 쿼리문 확인좀 부탁드립니다. 정보

list.php에서 쿼리문 확인좀 부탁드립니다.

본문

list.php
일부를 건드려서
도메인/bbs/board.php?bo_table=테이블명&lvl=값|값&cls=1|2|3|4|5
위방식으로 다중 검색? 비슷하게 사용할수 있도록 수정해 본겁니다..

if ($sca || $stx)
{
if ($lvl){
$mm = explode("|", $lvl);
$lvlrange = "(wr_2 between '$mm[0]' and '$mm[1]') and ";
}
if ($cls){
$cl = explode("|", $cls);

for ($k = 0; $k < count($cl); $k ++){
if (count($cl)==1 || count($cl)-1==$k ){
$cla.= " wr_3='$cl[$k]'";
}else{
$cla.= " wr_3='$cl[$k]' or";
}
$classrange = "(".$cla.") and ";
}
}


    $sql = " select distinct wr_parent from $write_table where $lvlrange $classrange $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";
}

lvl은 = wr_2 값의 범위로 걸러져서 추가되게,
cls는 = wr_3의 값을 나눠 각각 "값 or"로 추가되게 했습니다.
사용하려는 용도는 여유필드 1개의 값을 범위로 검색하고. 3개의 여유필드로 필터 효과를 내고자 합니다..

그래서... 2개를 더 추가하고자 하는데요...  우려 되는 부분이 or이나 and로 쿼리를 길게 해서 사용해도..
서버에 큰 무리나, 문제가 없을지 걱정이 되서... 질문 올립니다.

ps - 검색 기능이 자주 활용될 게시판입니다.. 염두하셔서 댓글점 부탁드려요 ^^
      그리고, 새해복 많이들 받으세요 (__)
  • 복사

댓글 전체

if ($sca || $stx) 이 실행 될 조건이 있어야 검색구문을 생성해 낼 수 있습니다
if ($sca || $stx || $lvl ) 이런식이 되어야겠죠 이곳 뿐만 아니라 아래쪽에도 몇군데
이렇게 해주어야 합니다

여분 필드는 인덱스가 생성되어 있지않아서 검색에 사용하려면 인덱스를 추가하는 것이 좋습니다
게시물수가 몇만개 이상 쌓이면 검색속도에 문제가 생긴다고 봐야죠
게시물수가 크게 많아질 성질이 아니면 그냥 해도 됩니다
그럼 위 select 자체는 큰 문제는 없는 거군요.. 게시글 자체는 약 8000개쯤 될거같네요.
이럼 인덱스를 추가하는게 났겠네요. 답변 감사합니다.
© SIRSOFT
현재 페이지 제일 처음으로