mysql 과부하 문제

mysql 과부하 문제

QA

mysql 과부하 문제

답변 4

본문

약 10만개 정도의 데이터가 등록된 테이블에서 

 

select * from aabbcc where bo_table = 'abc' order by rand() limit 1

 

쿼리가 초당 1번 정도 호출됩니다.

 

오늘 데이터가 10만개 정도 넘어가니깐 load가 77까지 올라가는데

 

무슨 좋은 방법이 없을가요

이 질문에 댓글 쓰기 :

답변 4

데이터가 많을때 rand는 부하를 많이 차지합니다

select * from aabbcc where bo_table = 'abc' order by rand() limit 1

 

아래처럼 수정해 보세요

(select * from aabbcc where bo_table = 'abc') order by rand() limit 1 


$sql = " select count(*) cnt from aabbcc where bo_table = 'abc' ";$result = sql_query($sql);
$row = sql_fetch_array($result);
$sql = " select * from aabbcc where bo_table = 'abc' limit ".rand(0,$row['cnt']-1).',1';
$result = sql_query($sql);
$row = sql_fetch_array($result);
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 1,537
© SIRSOFT
현재 페이지 제일 처음으로