Le query preparate da MySQL offrono un vantaggio in termini di prestazioni per le query una volta per sessione?

StackOverflow https://stackoverflow.com/questions/322319

Domanda

Secondo la documentazione, una query preparata offre un significativo vantaggio in termini di prestazioni se si esegue una query più volte perché l'overhead del server MySQL che analizza la query si verifica solo una volta. Mi chiedo cosa significhino esattamente per "più volte" lì.

Ad esempio, supponiamo che tu abbia una pagina web che esegue una query una volta. Ora supponiamo che la pagina venga chiamata 50 volte al secondo. Ha più senso dal punto di vista delle prestazioni preparare () la query (richiedendo quindi due roundtrip al server DB; uno per preparare la query, uno per eseguirla) o semplicemente inviare la query normalmente (che richiede solo un roundtrip) ? MySQL e / o il driver mysqli PHP sono abbastanza intelligenti da rendersi conto quando una query è stata preparata () in una precedente chiamata?

È stato utile?

Soluzione

No. PHP è un "nulla condiviso" " architettura, quindi ogni risorsa associata a una richiesta (una vista di pagina) viene scartata alla fine di quella richiesta. Le query preparate non sono disponibili per le successive connessioni al database.

Lo scenario in cui trarrai vantaggio da una query preparata è quando la prepari e la esegui più volte durante la stessa richiesta PHP .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top