ホームページ  >  記事  >  バックエンド開発  >  PHP が mysql rand() をランダムに記録して CPU 100% を引き起こす問題の解決策について

PHP が mysql rand() をランダムに記録して CPU 100% を引き起こす問題の解決策について

不言
不言オリジナル
2018-07-03 17:30:011515ブラウズ

この記事では、php が mysql rand() をランダムに記録して CPU 100% を引き起こす問題の解決策を主に紹介します。特定の参考値があります。今、共有します。必要な友人は参照してください。

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";

原理は実際には非常に単純で、ランダムな ID のセットを生成し、この ID のセットに対応するレコードを取得します。ページを開く速度は明らかに速くなり、CPU 使用率はほぼ 0 です (笑) ちなみに、私はこのアイデアを使用して sqlserver サイトを最適化しました。
速度の比較:
rand() を使用して 10 個のランダム レコードを取得するには 400 ミリ秒以上かかりますが、上記の方法を使用すると約 0.6 ミリ秒しかかかりません。その差は非常に大きいです。 ! !

以上がこの記事の全内容です。皆様の学習に少しでもお役に立てれば幸いです。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

ThinkPHP が複数のデータベース接続を実装する問題を解決する方法

ThinkPHP が ajax 模倣を実装する公式 Web サイト検索機能

#

以上がPHP が mysql rand() をランダムに記録して CPU 100% を引き起こす問題の解決策についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。