Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 php程序随机记录mysql rand()造成CPU 100%的解决方法

php程序随机记录mysql rand()造成CPU 100%的解决方法

发布时间:2015-02-13   编辑:www.jquerycn.cn
案例背景:mysql数据库有10几万条数据,使用rand()提取随机10条记录,导致服务器cpu占用居高不下直至死机。

案例背景:mysql数据库有10几万条数据,使用rand()提取随机10条记录,导致服务器cpu占用居高不下直至死机。
网上提供的解决方法:
 

复制代码 代码如下:
<?php
$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。
顺便用这个思路把sql server数据库应用中的站点也优化了一番。

速度比较
用rand()取10条随机记录要400多毫秒,而用上面的方法则只要0.6毫秒左右,效率提高了不是一点点啊。

您可能感兴趣的文章:
php程序随机记录mysql rand()造成CPU 100%的解决方法
php获取CPU使用信息
mysql中RAND()随机查询记录的效率问题和解决办法
PHP-CGI 进程 CPU 100% 与 file_get_contents 函数的关系
PHP编程小经验总结
用PHP生成随机数的函数
php生成随机数的例子
ubuntu下mysql配置
php生成随机产生六位数密码的代码
mysql忘记root密码的恢复方法

[关闭]