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

相关文章

php+mysql实现无限级分类

项目思路分析:一个PHP项目要用到分类,但不确定分几级,所以就想做成无限级分类。 一开始想是按以前一样,数据库建4个值,如下: id: 自增   | &nb...

浅析Mysql 数据回滚错误的解决方法

MYSQL的事务处理主要有两种方法。1、用begin,rollback,commit来实现begin 开始一个事务rollback 事务回滚commit 事务确认 2、直接用set来改变...

WampServer下安装多个版本的PHP、mysql、apache图文教程

WampServer下安装多个版本的PHP、mysql、apache图文教程

今天,我在调试一套PHP程序的时候,该程序中使用的某些函数在低版本中无法使用,所以只能在搞个高版本的php。 作为Web开发人员,在机器上安装不同版本的php,apache和mysql有...

mysql desc(DESCRIBE)命令实例讲解

mysql desc命令用于查看表结构,是DESCRIBE命令的简写形式。 mysql desc命令语法: desc tablename 该命令会显示表哪些信息呢?具体包括: 字...

PHP+MySQL实现消息队列的方法分析

本文实例讲述了PHP+MySQL实现消息队列的方法。分享给大家供大家参考,具体如下: 最近遇到一个批量发送短信的需求,短信接口是第三方提供的。刚开始想到,获取到手机号之后,循环调用接口发...