По поводу быстрого извлечения 100 тысяч datarows из 2 млн. Это вызывает у меня
большое изумление. Для кого эта выборка?
while (($data = fgetcsv($file, 15, ";")) !== false) {
// здесь получаем данные в массив
}
foreach ($res as $data) {
// здесь обрабатываем данные из массива
}
Вот только я не уверен, что время, затраченное на поиски и реализацию решения, хоть как-то окупится за счет экономии пары гигов памяти