Есть такой скрипт где мне в JSON прилетает массив людей, у каждого из которых несколько номеров и определенные параметры. Для каждого человека и номера и должен сформировать uuid и добавить это в mysql таблицу. Скрипт выполняется очень долго на больших данных. Например первые 15000 номеров залетают в таблицу за минуту, а 75000 залетают 20 минут. Почему так долго и время выполнение експоненциально увеличивается от объема? Возможно ли посчитать время выполнения каждой операции? Как это сделать?
$new_response_client = array();
$queueBank = array();
$clients = $get_data['data'];
foreach($clients as $client){
array_push($queueBank, $client);
}
foreach($queueBank as $client){
$flag = flagHandler($get_data['system'], $client['sex']);
$io = $client['io'];
$fio = $client['fio'];
$row_id = $client['row_id'];
$cnt_days = dpdHandler($client['dpd']);
$sum = sumHandler($client['sum']);
$reg_num = $client['reg_num'];
$originate_params = "origination_caller_id_number=111";
$smart_dialogs_uid = gen_uuid();
$new_response_phones = array();
foreach($client['phones'] as $phone){
$phone = phoneHandler($phone);
$call_uid = gen_uuid();
if(strlen($phone) == 10){
$STH = $DBH->prepare("INSERT INTO Queue (Phone, Flag, Io, Fio, Cnt_days, Sum, Reg_num, Originate_params, Client_id, Smart_dialogs_uid, Call_uid) values (:Phone, :Flag, :Io, :Fio, :Cnt_days, :Sum, :Reg_num, :Originate_params, :Client_id, :Smart_dialogs_uid, :Call_uid)");
$STH->bindParam(':Phone', $phone);
$STH->bindParam(':Flag', $flag);
$STH->bindParam(':Io', $io);
$STH->bindParam(':Fio', $fio);
$STH->bindParam(':Cnt_days', $cnt_days);
$STH->bindParam(':Sum', $sum);
$STH->bindParam(':Reg_num', $reg_num);
$STH->bindParam(':Originate_params', $originate_params);
$STH->bindParam(':Client_id', $client['client_id']);
$STH->bindParam(':Smart_dialogs_uid', $smart_dialogs_uid);
$STH->bindParam(':Call_uid', $call_uid);
$STH->execute();
$api_status = "Success";
}
else{
$api_status = "Error. Bad count in number.";
}
array_push($new_response_phones, $phone);
}
$new_response_client["row_id"] = $row_id;
$new_response_client["client_id"] = $client['client_id'];
$new_response_client["reg_num"] = $reg_num;
$new_response_client["smart_dialogs_uid"] = $smart_dialogs_uid;
$new_response_client["phone"] = $new_response_phones;
$flag = null;
$io = null;
$fio = null;
$cnt_days = null;
$sum = null;
$reg_num = null;
$originate_params = null;
$smart_dialogs_uid = null;
array_push($new_response, $new_response_client);
}
print_r(json_encode($new_response));