scusate ragazzi ho questo file che segue che esegue le operazioni perfettamente il suo lavoro, ossia il ciclo d'importazione dati ma per 1000 record impiega circa 4/5 minuti, potreste controllare o suggerirmi se ci può stare qualche metodo per velocizzarlo.....
Vi ricordo che salvo i dati in un db Mysql 5.7
Grazie Infinite
codice:
<?php
//FUNZIONE AGGIUNGI NUOVO RECORD
function InsertData($data,$connect){
    $wbs = substr($data->wbs,3);
    $cons_eff = str_replace(',','.',str_replace('.','',$data->cons_eff));
    $pianificato = str_replace(',','.',str_replace('.','',$data->pianificato));
    $budget = str_replace(',','.',str_replace('.','',$data->budget));
    $eff_tot = str_replace(',','.',str_replace('.','',$data->eff_tot));
    $residuo_oda = str_replace(',','.',str_replace('.','',$data->residuo_oda));
    $disposto = str_replace(',','.',str_replace('.','',$data->disposto));
    $disponibile = str_replace(',','.',str_replace('.','',$data->disponibile));
    $npp = substr($data->wbs, 3,4);
    // cerca id nnp
    $query = "SELECT * FROM tb_npp WHERE codice ='".$npp."'";
    $result = mysqli_query($connect, $query);
    if ($result === false) {
        echo "ERRORE CONNESSIONE DATABASE: " . mysqli_error($connect);
    }
    if (mysqli_num_rows($result)>0){
      //NPP TROVATA
      while($row = $result->fetch_assoc()) {
            $id_npp= $row["id"];
      }
      $sql="INSERT INTO tb_pianifica (wbs,cons_eff,pianificato,budget,eff_tot,residuo_oda,disposto,disponibile,id_npp,id_status,id_statistic,id_blocco,id_update) VALUES ('".$wbs."','" .$cons_eff. "','" .$pianificato. "','" .$budget."','".$eff_tot."','".$residuo_oda."','".$disposto."','".$disponibile."','".$id_npp."','1','1','1','0')";
      return $sql;
    }
    else {
      //NPP NON TROVATA
      echo "<span>Npp : <span><b>( ".$npp." )</b> non trovata<br>";
    }
};


//FUNZIONE AGGIORNA RECORD
function UpdateData($data,$connect){
  $wbs = substr($data->wbs,3);
  $cons_eff = str_replace(',','.',str_replace('.','',$data->cons_eff));
  $pianificato = str_replace(',','.',str_replace('.','',$data->pianificato));
  $budget = str_replace(',','.',str_replace('.','',$data->budget));
  $eff_tot = str_replace(',','.',str_replace('.','',$data->eff_tot));
  $residuo_oda = str_replace(',','.',str_replace('.','',$data->residuo_oda));
  $disposto = str_replace(',','.',str_replace('.','',$data->disposto));
  $disponibile = str_replace(',','.',str_replace('.','',$data->disponibile));
  $npp = substr($data->wbs, 3,4);
  // cerca id nnp
  $query = "SELECT * FROM tb_npp WHERE codice ='".$npp."'";


  $result = mysqli_query($connect, $query);
  if ($result === false) {
      echo "ERRORE CONNESSIONE DATABASE: " . mysqli_error($connect);
  }
  if (mysqli_num_rows($result)>0){
    //NPP TROVATA
    while($row = $result->fetch_assoc()) {
          $id_npp= $row["id"];
    }
    $sql = "UPDATE tb_pianifica SET cons_eff='".$cons_eff."', pianificato='".$pianificato. "', budget='".$budget. "',eff_tot='".$eff_tot. "',residuo_oda='".$residuo_oda. "',disposto='".$disposto. "',disponibile='".$disponibile. "',id_npp='".$id_npp. "' WHERE wbs='".$wbs."'";
    return $sql;
  }
  else {
    //NPP NON TROVATA
    echo "<span>Npp : <span><b>( ".$npp." )</b> non trovata<br>";
  }


};


include "db_connect.php";
//APRO LA CONNESSIONE AL DB
$connect = OpenCon();
//leggo i dati arrivati
$data= $_POST["pTableData"];
//DATI PER TEST
//$data= '[null,null,null,null,null,{"wbs":"WBS0017-FPR-PP-C001","cons_eff":"0,00","pianificato":"429,64","budget":"0,00","eff_tot":"2.746,16","residuo_oda":"0,00","disposto":"2.746,16","disponibile":"-2.746,16"},null,null,{"wbs":"WBS0017-S01-PR-PM","cons_eff":"0,00","pianificato":"1.106,96","budget":"1.122,79","eff_tot":"1.106,96","residuo_oda":"0,00","disposto":"1.106,96","disponibile":"15,83"},{"wbs":"WBS0017-S01-PR-E01","cons_eff":"0,00","pianificato":"5.243,71","budget":"5.360.248,26","eff_tot":"5.243,71","residuo_oda":"0,00","disposto":"5.243,71","disponibile":"4,55"}]'

//CONVERTO  in JSON
$data = json_decode($data);
//ELIMINO I RECORD NULLI
$data = array_filter($data);
//azzero le variabili
$CountUpdata=0;
$CountIndata=0;
$ErrUpdateData=0;
$ErrInsertData=0;
//ciclo array
foreach($data as $value ){
  //echo $value->wbs."<br>";
  if(substr($value->wbs, 0,3)=="WBS"){// && strlen($value->wbs)>16
     $query = "SELECT * FROM tb_pianifica WHERE wbs ='".substr($value->wbs,3)."'";
     $result = mysqli_query($connect, $query);
     if ($result === false) {
         echo "ERRORE CONNESSIONE DATABASE: " . mysqli_error($connect);
     }
     else {
         if (mysqli_num_rows($result)>0)
         { //AGGIORNA RECORD ESISTENTE
            $sql="";
            $sql=UpdateData($value,$connect);
            //Controllo se andata a buon fine aggiornamento
            if ($sql!=""){
                if($connect->query($sql) == TRUE)
                {
                  $CountUpdata=$CountUpdata+1;
                }
                else
                {
                  $ErrUpdateData=$ErrUpdateData+1;
                }
              }
            else
            {
              $ErrUpdateData=$ErrUpdateData+1;
            }
          }
         else
          { //INSERISCI NUOVO RECORD
            $sql="";
            $sql=InsertData($value,$connect);
            //Controllo se andata a buon fine inserimento
               if ($sql!=""){
                  if($connect->query($sql) === TRUE)
                  {
                    $CountIndata=$CountIndata+1;
                  }
                  else
                  {
                    $ErrInsertData=$ErrInsertData+1;
                  }
              }
              else
              {
                $ErrInsertData=$ErrInsertData+1;
              }
          }
      }
  }
}
echo "<span>Aggiornati : <span><b>".$CountUpdata."</b><br>";
echo "<span>Nuovi Inseriti : <span><b>".$CountIndata."</b><br>";
echo "<span>Errore Aggiornamento : <span><b>".$ErrUpdateData."</b><br>";
echo "<span>Errore Inserimento : <span><b>".$ErrInsertData."</b>";


?>