이 글에서는 CPU 100%를 유발하는 PHP의 무작위 기록에 대한 솔루션을 주로 소개합니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다.
Mysql 데이터베이스에는 수만 개가 있습니다. 항목 데이터, rand()를 사용하여 10개의 무작위 레코드를 추출하면 충돌이 발생할 때까지 서버 CPU 사용량이 높게 유지됩니다~
Baidu는 일부 정보를 검토하고 자체 경험을 결합하여 다음 솔루션을 채택했습니다.
$idlist=''; for($i=1;$i<=20;$i++){ if($i==1){ $idlist=mt_rand(3,25216); } else{ $idlist=$idlist.','.mt_rand(3,25216); } } $query="select * from table where id in ($idlist) LIMIT 0,10";
The 원칙은 실제로 매우 간단합니다. 임의의 ID 세트를 생성한 다음 이 ID 세트에 해당하는 레코드를 검색하는 것입니다. 이러한 최적화 후에는 페이지 열기 속도가 훨씬 빨라지고 CPU 사용량도 거의 감소합니다. 0. 하하~ 그런데 저도 이 아이디어를 sqlserver 사이트 최적화에 활용하고 있습니다.
속도 비교:
랜덤 레코드 10개를 가져오는 데 rand()를 사용하는 데는 400밀리초 이상이 걸리지만, 위 방법을 사용하는 데는 약 0.6밀리초밖에 걸리지 않습니다. ! !
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
관련 권장사항:
다중 데이터베이스 연결을 구현하는 ThinkPHP의 문제를 해결하는 방법
ThinkPHP에서 ajax 모방 공식 웹사이트 검색 기능을 구현
위 내용은 PHP가 mysql rand()를 임의로 기록하여 CPU 100%를 발생시키는 솔루션에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!