sql 문으로 10만개의 글 중에 날짜를 통해서 이번달,이번주 등 랜덤글 보기 리소스..

sql 문으로 10만개의 글 중에 날짜를 통해서 이번달,이번주 등 랜덤글 보기 리소스..

QA

sql 문으로 10만개의 글 중에 날짜를 통해서 이번달,이번주 등 랜덤글 보기 리소스..

본문

안녕하세요..

커뮤니티 운영중에 다른 커뮤니티에는 '랜덤글'이라는 것이 탐이나서..

랜덤글을 그누보드로 만들어 보았는데...문제는 게시글이 10만개 정도 되거든요..

그 글을 다 랜덤 하려니..과부하가 걸릴것 같아서....

한달, 혹은 한주 이렇게 줄여서 글을 랜덤하게 버튼을 누르면 보여지게 하려고 하는데...

결론은 서버에 무리가 갈까요 ? 아니면 크게 무리 없으니 그냥 해도 될까요 ?

 

한달이 무리가 간다면...한주로 바꿔서 하려고 하는데..

무리가 간다면 접어야죠....

고수님들의 의견 듣고 싶네요..

이 질문에 댓글 쓰기 :

답변 3

전체글을 랜덤하는것 보다는 일정 조건(조회수, 추천수 많은순 등)을 주고 가져와서 1천개정도(?)를 일정 시간(5분)마다 갱신되게 파일 캐시를 해서 해당시간 동안에는 1천개중에서 랜덤으로 뿌려주면 부화가 줄어 들것 같습니다

랜덤 글 ID 를 PHP 에서 생성하는 방법을 생각해 볼 수도 있을 것 같습니다.

다만, 없는 글 번호를 감안.. 100개 정도의 랜덤 숫자를 추출한 뒤, 최종 표시는 10개 정도식으로 하면 되지 않을까 싶습니다.

 

for ($i = 0; $i < 100; $i++) {

  $arr_num[$i] = rand(1, 100000);

}

$txt = implode(',', $arr_num);

$sql = "select * from [table] where wr_id in ( {$txt} ) limit 10";

100 개의 숫자를 뽑은 뒤,
sql 문에서 limit 10; 으로 10개만 추출하면..
기본 order by가 wr_id 일테니.. 초창기 wr_id 위주로 나오는 것 같습니다.

13 ~ 14개의 숫자를 뽑는 것으로 변경해볼 수 있을 것 같습니다..

for ($i = 0; $i < 14; $i++) {

소스에 문제가 생겨 버렸습니다.
빈 테이블도 링크에 포함이 됩니다. 예를 들어 wr_id 필드 안에 있는 소스만 불러와야 하는데...

&wr_id=1234 <- 이렇게 나와야 하는데...
&wr_id= <- 이렇게 비어있는 필드도 나오네요..

제 짧은 지식으로는 무작위로 대입해서..없는 필드에 값이 없는 숫자가 나올 경우 저렇게 비는거 같은데...어렵네요...ㅠㅠ

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

회원로그인

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