Php 当我调用codeigniter中的行时,我是否使用限制?
我在一个遗留系统中工作,该系统使用row()加limit()来获得一个结果。我不明白为什么,因为row()已经给了我一个结果,但一位同事说这可以提高性能。例如: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
$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];
}
当您返回第一个元素或提供的参数(即行索引)时。
行
实际上是此行对象的别名