2016-01-28 15:06:20 4022次浏览 1条回答 0 悬赏 10 金钱

表1:123row数据
表2:3万条数据
我只进行个关联查询脚本就超时了 w.w ,单独执行sql语句连0.几秒就完成了。

很是想不通啊,另外在mysql里添加索引,ar也会用到吧。

public function getNodeList(){
    $provider = $this->find()->with('nodeAttention')->select('psnode.nodeID,psnode.name')->all();
    dump($provider);
    return $provider;
}
    
public function getNodeAttention() {
    return $this->hasMany(Pssubscription::className(), ['nodeID'=>'nodeID']);
}
  • 回答于 2016-01-29 09:21 举报

    单独执行时,客户端会自己加上limit语句。代码里面则不会,建议你这里分页取数。

    1 条回复
    回复于 2016-01-29 10:20 回复

    谢谢,找到原因了已经,BaseVarDumper类的dump方法

    public static function dumpAsString($var, $depth = 10, $highlight = false)
    {
        self::$_output = '';
        self::$_objects = [];
        self::$_depth = $depth;
        self::dumpInternal($var, 0);
        if ($highlight) {
            $result = highlight_string("<?php\n" . self::$_output, true);
            self::$_output = preg_replace('/&lt;\\?php<br \\/>/', '', $result, 1);
        }
    
        return self::$_output;
    }
    

    这个如果数据太多就不行了

您需要登录后才可以回答。登录 | 立即注册
cy
职场新人

cy

注册时间:2015-08-27
最后登录:2017-04-26
在线时长:5小时15分
  • 粉丝0
  • 金钱15
  • 威望0
  • 积分65

热门问题