PHP가 mysql rand()를 임의로 기록하여 CPU 100%를 발생시키는 솔루션에 대해

不言
풀어 주다: 2023-04-02 09:54:02
원래의
1510명이 탐색했습니다.

이 글에서는 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.&#39;,&#39;.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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿