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";
SELECT * FROM 테이블명 WHERE wr_datetime BETWEEN '2020-08-03' AND '2020-09-03' ORDER BY RAND() LIMIT 10
이런식으로 사용하시는건요??