Спасибо за вашу помощь @dexter и @Daryl!
Я объединил ваши рекомендации, и теперь процесс работает отлично!
Я могу импортировать 15 тысяч записей из 41 столбца за 28 секунд и 30 тысяч записей за 60 секунд! Удивительно! Теперь мне нужно автоматизировать это, но это другая проблема :-)
Это мой окончательный код:
include('dbconnect.php');
if(isset($_POST["Import"]))
{
$filename=$_FILES["file"]["tmp_name"];
if($_FILES["file"]["size"] > 0)
{
ini_set('auto_detect_line_endings',TRUE);
$file = fopen($filename, "r");
set_time_limit (45);
while ($getData = fgetcsv($file, 0, ',', '"'))
{
$sql = "INSERT INTO testimport
(
id_record,panel_number,machine_number,id_internal_code,
id_number,tot_production,waiting_time,operation_length,
avg_flow,max_flow,flow_15,flow_30,flow_60,flow_120,
avg_temp,max_temp,avg_cond,max_cond,m_detach,m_input,
m_quantity,m_input_nc,max_time,m_operation,m_sep_,
a_no_flow,a_conductivity,a_low_prod,a_kick_off,
a_temperature,prod_2min,low_flow_time,
50char_graph_data,data_enter,data_start,data_end,
data_exit,preparation_time,nr_session,perc_2min,
perc_low_flow
)
VALUES
(
?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,
?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?
)";
$stmt = mysqli_prepare($conn, $sql);
$stmt->bind_param
( "sssssssssssssssssssssssssssssssssssssssss",
$getData[0], $getData[1], $getData[2], $getData[3],
$getData[4], $getData[5], $getData[6], $getData[7],
$getData[8], $getData[9], $getData[10], $getData[11],
$getData[12], $getData[13], $getData[14], $getData[15],
$getData[16], $getData[17], $getData[18], $getData[19],
$getData[20], $getData[21], $getData[22], $getData[23],
$getData[24], $getData[25], $getData[26], $getData[27],
$getData[28], $getData[29], $getData[30], $getData[31],
$getData[32], $getData[33], $getData[34], $getData[35],
$getData[36], $getData[37], $getData[38], $getData[39],
$getData[40]
);
$sql = "INSERT into testimport()
values
(
?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,
?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?
)";
$stmt->execute();
}
fclose($file);
mysqli_close($conn);
}
}