この記事では、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.','.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 サイトの他の関連記事を参照してください。