我正在使用CodeIgniter进行数据库访问的应用程序。该应用程序会发出以下查询:$this->db->query("SELECT fields_list FROM table_name");
但该表有数十万条记录。
CodeIgniter尝试将整个结果集加载到内存中,导致脚本达到内存限制。
解决这个问题的方法是使用libmysqlclient API的SSCursor,但我看不到任何使用SSCursor的CodeIgniter示例。有没有办法在CodeIgniter中使用MySQL的SSCursor?
答案 0 :(得分:0)
执行for循环并限制在单个查询中检索的记录数。
获取表格中的总记录数。然后做一个:
for ($i=0; $i<=COUNT_OF_RECORDS; $i+=1000) {
$sql = "SELECT fields_list FROM table_name LIMIT $i,1000";
}