글쎄, 문제는 result()
가 전체 쿼리 응답을 제공한다는 것입니다. row()
은 첫 번째 경우를 반입하고 나머지는 덤프합니다. 그러나 쿼리는 여전히 사용하는 함수의 30 000 행을 가져올 수 있습니다. 당신의 원인이 될 것 맞는 것
한 디자인 :이, 하나 개의 행을 API로 보내 페이지를 업데이트하고 다음 행을 사용
$offset = (int)@$_GET['offset'];
$query = $this-db->query("SELECT * FROM table LIMIT ?, 1", array($offset));
$row = $query->row();
if ($row) {
/* Run api with values */
redirect(current_url().'?offset'.($offset + 1));
}
. 페이지가 시간 초과되는 것을 방지합니다. 그러나 30 000 개의 레코드와 새로 고침을하는 데 시간이 걸릴 가능성이 높으므로 LIMIT ?, 1
을 1
보다 높은 숫자로 조정하고 페이지로드 당 result()
및 foreach()
개의 다중 api로 변경하려고 할 수 있습니다.
을 나는 네가 할 수 있다고 생각하지 않는다. 'LIMIT'과'OFFSET'을 사용하여 여러 개의 쿼리를로드하려고 시도 했습니까? 1000 ~ 한 번로드 할 수 있습니다. – rmobis
검색 api로 합리적으로 전달할 수있는 것부터 10, 100 또는 1000 등으로 돌아가서 작업하십시오. 그룹 제출이 실패한 경우를 대비하여 무언가를 넣고 검색 API에 다시 제출해야합니다. – cartalot