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

yipeiwu_com7年前Mysql基础
百度查阅了一些资料,再结合自己的一些经验,采用以下解决办法:
复制代码 代码如下:

$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毫秒左右,差别太大了!!!

相关文章

优化使用mysql存储session的php代码

之前写过两篇文章《自定义SESSION(二)——数据库保存》和《我为什么不使用session》   但后来发现都有问题。前者处理在实际中几乎没什么用处,而且sessi...

PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享

PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享

对于学习php的新手,由于网上的配置方法都是很久之前的,及时性不高,环境配置往往令人很头疼,我初学php配置环境时配置了3个晚上,每次总是会出现这样或那样的问题,如今把最新版的PHP5....

Windows2003 下 MySQL 数据库每天自动备份

终于让服务器每天早上备份一次 MySQL 数据库并自动打包,同时删除 5 天前的备份文件。分享如下:    &nbs...

PHP实现利用MySQL保存session的方法

session是PHP程序设计中服务器端用来保存用户信息的一个变量,具有非常广泛的应用价值。本文实例讲述了PHP实现利用MySQL保存session的方法。分享给大家供大家参考之用。具体...

php基于单例模式封装mysql类完整实例

本文实例讲述了php基于单例模式封装mysql类。分享给大家供大家参考,具体如下: 类: <?php header("content-type:text/html;ch...