CodeIgniter语言 - 如何在不泄漏内存的情况下选择大表中的所有行



很难理解我在标题中的需求。

CodeIgniter 正在一次在 800,000+ 行的表中执行 SELECT 查询。

它需要大量内存,但是在一个特定的服务器中,我收到"内存不足"致命错误。

出于性能目的,我想将选择分为 2 个选择,更具体地说,是 50% 的第一行,然后是剩余的 50%。

我重用这组数据在之后执行插入。

如何在不丢失/忘记任何一行的情况下做到这一点?

除了此类操作与性能问题高度相关之外,您还可以使用unbuffered_row.

基本上,如果你有一个处理大数据的工作 - 你应该使用unbuffered_row提供并集成到构建中 在查询生成器中。

它在结果行部分中得到了很好的记录。

例如:

$query = $this->db->select('*')->from('your_table')->get();
while($row = $query->unbuffered_row())
{
//do your job
}

这将避免您的内存问题。

相关内容

  • 没有找到相关文章

最新更新