代码点火器大查询结果result_array()结果

时间:2013-01-06 23:41:34

标签: mysql codeigniter

我在看this

我的查询最多返回10,000行,通常会填满内存

我目前正在做:

$this->db->get()->result_array();

有没有办法不将所有数据加载到内存中并使用某种游标?似乎结果和结果数组都是数组。 (一个是对象数组,另一个是数组数组)

2 个答案:

答案 0 :(得分:7)

如果您使用的是我个人推荐的Active Record,limit()应该可以实现您的目标。

$this->db->limit();

也可以这样使用稍微容易一点,代码行数少

$query = $this->db->get('Table_Name', 50); //syntax db->get('Table',limit_val);
return $query->result();

也可以返回带偏移的限制:

$this->db->limit(10, 20); // Second parameter lets you set a result offset

链接以获取有关Active Record Query的更多帮助 https://www.codeigniter.com/userguide2/database/active_record.html#select

答案 1 :(得分:2)

Mysql偏移量是您要查找的指针。 您可以像使用它一样使用它:

    $this->db->get(tableName,10,20);

第二个参数和第三个参数可帮助您设置限制和偏移。

Here are more details