用thinkphp查询数据库数据很慢,数据库有5万条数据,求大神帮忙优化

luojunadmin 2016-10-25 04:02:21
if($_POST['shebei']!=""){
$ysj=$dao->field('flags=0'.' and '."send_mac='".$_POST['shebei']."'")->select();

$equ=$shebei->where("mac='".$_POST['shebei']."'")->limit(1)->find();
$this->assign('equ',$equ);

}
$sjz=array();
$sjss=array();
$num=0;
for($i=0;$i<count($ysj);$i++){
$ysj[$i]['time']=strtotime($ysj[$i]['time']);
}

$ymd=$_POST['ktime'];
$ymd1=$_POST['jtime'];

$arrz=strtotime($ymd);//这里是第一个时间戳
$arrz1=strtotime($ymd1);//这里是第二个时间戳
$ss=($arrz1-$arrz)/3600;
$nums=array();
for($k=0;$k<$ss;$k++){
for($j=0;$j<count($ysj);$j++){
if($ysj[$j]['time']>($arrz+$k*3600)&&$ysj[$j]['time']<($arrz+($k+1)*3600)){
$sjz[$j]['mac']=$ysj[$j]['mac'];
$sjz[$j]['time']=date('Y-m-d H:i:s',$ysj[$j]['time']);
$sjz[$j]['sb']=$equ['address'];
$css[$j]['mac']=$ysj[$j]['mac'];
$sj=formatArray($css);

}
}
}
$i=0;
$sjztime=array();
$accs=array();
$sb=array();

foreach($sjz as $v) {
if(! isset($sjztime[$v['mac']])){
$sjztime[$v['mac']] = $v;
$accs[$i]=$v;
$i++;
}
}
...全文
1823 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄袍披身 2016-10-30
  • 打赏
  • 举报
回复
5w条就算是不用索引也不能慢呀...
码无边 2016-10-27
  • 打赏
  • 举报
回复
在循环for前面加上计时器,看下for消耗了多少时间就知道了。
傲雪星枫 2016-10-25
  • 打赏
  • 举报
回复
5万条数据不会很慢的,可以在搜寻的字段加索引。
xuzuning 2016-10-25
  • 打赏
  • 举报
回复
你就只查了 2 条数据 $ysj=$dao->field('flags=0'.' and '."send_mac='".$_POST['shebei']."'")->select(); $equ=$shebei->where("mac='".$_POST['shebei']."'")->limit(1)->find(); 会很慢吗? 倒是你下面的嵌套循环,是很费时间的

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧