PHP 7.4 Lentezza query dentro cicli While

di il
4 risposte

PHP 7.4 Lentezza query dentro cicli While

Ciao a tutti

mi trovo davanti ad un problema su delle performance di un mio vecchio script. Molti molti anni fà ho scritto un programma , ho ripreso questo script e lo installato su un nuovo server con php 7.4 e mysql 8.0.

Naturalmente essendo state deprecate molte istruzioni del php , ho modificato lo script ma non ho cambiato la sua struttura . Ma con mia grande sorpresa non riesco ad ottnere delle performance adeguate

In pratica lo script è :

// MySQL Connection:
$con=mysqli_connect("localhost","root","pippo","pluto");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

.
.
.

$Q = mysqli_query($con, sprintf("SELECT * FROM `table1` WHERE num_mcr IS NOT NULL AND closed = '0' %s ORDER BY %s ASC;", $rights_view[0],$_GET['order']));
while ($D = mysqli_fetch_array($Q)) {

e poi qui dentro un'altra query

$H = mysqli_query($con, sprintf("SELECT * FROM `mcr_mcr_status` WHERE `id_mcr` = '%s' ORDER BY time DESC LIMIT 1;", $D['id_mcr']));
$J = mysqli_fetch_array($H)

.
.
.

}

La cosa strana è che nel vecchio server questa operazione durava circa 1 secondo , nel nuovo server 30 SECONDI

Ora posso fare la JOIN delle due query e risolvo il problema , ma la mia domanda ma perché questo peggioramento ?


Grazie Alessandro

4 Risposte

  • Re: PHP 7.4 Lentezza query dentro cicli While

    Aggiornamento , come immaginavo creando una bella vista il problema si è risolto , comunque rimane il problema della lentenza del php 7.4 + mysqld 8.0 , rispetto alla versione precedenti , vorrei capire il perchè ma non riesco a trocare una motivazione valida

    Grazie Alessandro
  • Re: PHP 7.4 Lentezza query dentro cicli While

    Il codice è una summa di come NON scrivere programmi PHP.
    A parte questo, provato con PDO?
  • Re: PHP 7.4 Lentezza query dentro cicli While

    +m2+ ha scritto:


    Il codice è una summa di come NON scrivere programmi PHP.
    A parte questo, provato con PDO?
    L'ho scritto nel lontano 2000 , tanto tanto tempo fà , ed è stato il mio script . A parte come è scritto male , la mia era solo capire la differenza di prestazione .

    Non ho provato con PDO , perchè non riesco a capire se ancora è un problema di elaborazione del PHP o della richiesta al DB

    Ciao Alessandro
  • Re: PHP 7.4 Lentezza query dentro cicli While

    Prima di effettuare la SELECT var_dump($rights_view[0],$_GET['order']); è diversa da null?
    Aiuterebbe anche se con una variabile temporaneamente conservi il sprintf e lo mostri con il var_dump.. se la sintassi è corretta.
    Comunque in una WHERE campo1='conversione stringa' AND campo2='conversione stringa' AND campo3='conversione stringa' si inserisce AND se tutti i campi sono necessari e il valore sarà tra apici se è di tipo stringa o comunque da una sequenza numerica trasformata in stringa.
    Quindi presumo che $rights_view[0] è il valore del campo3 in cui non stai inserendo AND e poi ordini per $_GET['order']
Devi accedere o registrarti per scrivere nel forum
4 risposte