Maison > développement back-end > tutoriel php > À propos de la solution pour que PHP enregistre aléatoirement mysql rand() provoquant une CPU à 100 %

À propos de la solution pour que PHP enregistre aléatoirement mysql rand() provoquant une CPU à 100 %

不言
Libérer: 2023-04-02 09:54:02
original
1538 Les gens l'ont consulté

Cet article présente principalement la solution au CPU 100% causé par PHP enregistrant aléatoirement mysql rand(). Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

mysql La base de données contient des dizaines de milliers de données et rand() est utilisé pour extraire 10 enregistrements aléatoires, ce qui fait que l'utilisation du processeur du serveur reste élevée jusqu'à ce qu'il plante ~

Baidu a consulté certaines informations, combinées à certaines des sa propre expérience, et a adopté la solution suivante Méthode :

$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";
Copier après la connexion
Le principe est en fait très simple, c'est-à-dire générer un ensemble d'identifiants aléatoires, puis récupérer les enregistrements correspondant à cet ensemble d'identifiants après. une telle optimisation, la vitesse d'ouverture des pages est évidemment beaucoup plus rapide, et l'utilisation du CPU est également faible elle atteint presque 0, haha~ D'ailleurs, j'ai aussi utilisé cette idée pour optimiser le site sqlserver !

Comparaison de vitesse :
Il faut plus de 400 millisecondes pour utiliser rand() pour obtenir 10 enregistrements aléatoires, mais il ne faut qu'environ 0,6 milliseconde pour utiliser la méthode ci-dessus. ! !

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment résoudre le problème de ThinkPHP implémentant plusieurs connexions à des bases de données

ThinkPHP implémentant le site officiel de l'imitation ajax fonction de recherche

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal