mysql 과부하 문제

mysql 과부하 문제

QA

mysql 과부하 문제

본문

약 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);
답변을 작성하시기 전에 로그인 해주세요.
전체 1,515
QA 내용 검색

회원로그인

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