Php 当我调用codeigniter中的行时,我是否使用限制?

Php 当我调用codeigniter中的行时,我是否使用限制?,php,codeigniter,activerecord,phpactiverecord,Php,Codeigniter,Activerecord,Phpactiverecord,我在一个遗留系统中工作,该系统使用row()加limit()来获得一个结果。我不明白为什么,因为row()已经给了我一个结果,但一位同事说这可以提高性能。例如: $this->db ->select() ->select('extract(epoch from cadevolucao.dt_sistema) as data_sistema') ->select('extract(epoch from cadev

我在一个遗留系统中工作,该系统使用row()加limit()来获得一个结果。我不明白为什么,因为row()已经给了我一个结果,但一位同事说这可以提高性能。例如:

    $this->db
         ->select()
         ->select('extract(epoch from cadevolucao.dt_sistema) as data_sistema')
         ->select('extract(epoch from cadevolucao.dt_previsao_alta) as data_previsao')
         ->select('cadevolucao.cd_evolucao, cadevolucao.dt_sistema')
         ->join('contatnd', 'cadevolucao.num_atend = contatnd.num_atend')
         ->join('cadplanejamento', 'cadevolucao.cd_evolucao = cadplanejamento.cd_evolucao')
         ->where('contatnd.cd_pessoa', $cd_pessoa)
         ->where('tp_evolucao', -1)
         ->where('tipo', 1)
         ->order_by('cadevolucao.cd_evolucao','desc')
         ->limit(3)
         ->get('cadevolucao')
          ->row();
我在CI文档和Google中查找,没有找到任何有用的信息


有人能解释一下在活动记录的CI中使用row()时是否需要限制()以及为什么吗?

据我所知,row方法返回单个结果行。如果您的查询有多行,它只返回第一行。但在内部,它仍然获取查询获取的所有行并将其存储在数组中。是的,我想我必须同意你的同事的意见。确实,限额会对绩效产生影响

这就是
row
方法在内部所做的

/**
     * Returns a single result row - object version
     *
     * @param   int $n
     * @return  object
     */
    public function row_object($n = 0)
    {
        $result = $this->result_object();
        if (count($result) === 0)
        {
            return NULL;
        }
        if ($n !== $this->current_row && isset($result[$n]))
        {
            $this->current_row = $n;
        }
        return $result[$this->current_row];
    }
当您返回第一个元素或提供的参数(即行索引)时。
row
实际上是这个
row\u对象的别名

据我所知
row
方法返回一个结果行。如果您的查询有多行,它只返回第一行。但在内部,它仍然获取查询获取的所有行并将其存储在数组中。是的,我想我必须同意你的同事的意见。确实,限额会对绩效产生影响

这就是
row
方法在内部所做的

/**
     * Returns a single result row - object version
     *
     * @param   int $n
     * @return  object
     */
    public function row_object($n = 0)
    {
        $result = $this->result_object();
        if (count($result) === 0)
        {
            return NULL;
        }
        if ($n !== $this->current_row && isset($result[$n]))
        {
            $this->current_row = $n;
        }
        return $result[$this->current_row];
    }
当您返回第一个元素或提供的参数(即行索引)时。
实际上是此
行对象的别名