Я работаю с очень большим набором данных (точнее, 786,432 строк).
Итак, чтобы избежать ограничений памяти, я хочу перебрать набор данных в стопки по 50000 строк, чтобы проверить этоЯ думал, что попробую:
function test(){
$start = 0;
$end = 50000;
$q = $this->db->select('uuid')->from('userRegionLink')->limit($end, $start)->get();
$i = 0;
while($q->num_rows() != 0){
echo 'Round: '.++$i.'<br />';
echo 'Rows: '.$q->num_rows().'<br />';
echo 'Start: '.$start.'<br />';
echo 'End: '.$end.'<hr />';
$start = $end;
$end = $end+50000;
$q = $this->db->select('uuid')->from('userRegionLink')->limit($end, $start)->get();
}
}
Но мои результаты очень странные: посмотрите на 9-й раунд и ниже.
Что вызывает это?
Раунд: 1
Строки: 50000
Начало: 0
Конец: 50000
Раунд: 2
Строки: 100000
Начало: 50000
Конец: 100000
Раунд:3
Строк: 150000
Начало: 100000
Конец: 150000
Раунд: 4
Строк: 200000
Начало: 150000
Конец: 200000
Тур: 5
Строк: 250000
Начало: 200000
Конец: 250000
Раунд: 6
Строк: 300000
Начало: 250000
Конец: 300000
Тур: 7
Строки: 350000
Начало: 300000
Конец: 350000
Раунд: 8
Строки: 400000
Начало: 350000
Конец: 400000
Раунд: 9
Строки:386432
Начало: 400000
Конец: 450000
Раунд: 10
Строк: 336432
Начало: 450000
Конец: 500000
Раунд: 11
Строк: 286432
Начало: 500000
Конец: 550000
Раунд: 12
Строк: 236432
Начало: 550000
Конец: 600000
Раунд: 13
Строки: 186432
Начало: 600000
Конец: 650000
Раунд: 14
Строки: 136432
Начало: 650000
Конец: 700000
Раунд: 15
Строк: 86432
Начало: 700000
Конец: 750000
Круг: 16
Строк: 36432
Начало: 750000
Окончание: 800000