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

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

相关文章

PHP中使用sleep造成mysql读取失败的案例和解决方法

近日,由于项目需求 需要用到sleep函数定时从数据库取一堆数据出来去执行某些操作。 sleep等待的时间至少有一个小时以上 此前做过测试 用sleep函数去完成数小时后执行的操作是可行...

PHP用mysql数据库存储session的代码

隐患一:如果客户端机器的cookie一旦因病毒而失效了,那么session也就相当于没有了。 隐患二:session在php中默认的是以文件的形式保存在一个临时文件夹里面的,对于一个小型...

MYSQL环境变量设置方法

mysql环境变量设置(windows环境) 1、对于命令控来说,在cmd命令下行下操作很方便,但有时需要直接在命令行床空执行mysql这样的命令,会出现”mysql不是内部或外部命令“...

php+mysql数据库实现无限分类的方法

本文实例讲述了php+mysql数据库实现无限分类的方法。分享给大家供大家参考。具体分析如下: 这款php无限分类代码比较完整理包括了数据库是mysql的,有增加、删除、编辑、移动的功能...

php+mysql事务rollback&amp;commit示例

mysql_query("BEGIN");//开始一个事务 mysql_query("SET AUTOCOMMIT=0"); //设置事务不自动commit $insert="INSER...