utilizarlos stmt statement sentencias procedimientos prepared preparadas bind_param almacenados php mysql mysqli prepared-statement mdb2

php - stmt - ¿Las consultas preparadas de MySQL proporcionan un beneficio de rendimiento para las consultas de una vez por sesión?



sentencias preparadas php mysqli (1)

De acuerdo con la documentación, una consulta preparada proporciona un beneficio de rendimiento significativo si está ejecutando una consulta varias veces porque la sobrecarga del servidor MySQL al analizar la consulta solo ocurre una vez. Me pregunto qué quieren decir con "múltiples veces" allí.

Es decir, supongamos que tiene una página web que ejecuta una consulta una vez. Ahora di que esa página se llama 50 veces por segundo. ¿Tiene más sentido desde el punto de vista del rendimiento preparar () la consulta (requiriendo dos viajes de ida y vuelta al servidor de bases de datos, uno para preparar la consulta, otro para ejecutarlo) o simplemente enviar la consulta normalmente (que solo requiere una ida y vuelta)? ? ¿Es MySQL y / o el controlador mysqli de PHP lo suficientemente inteligente como para darse cuenta cuando una consulta se prepare () ''d en una invocación previa?


No. PHP es una arquitectura de "nada compartido", por lo que cada recurso asociado con una solicitud (una vista de página) se descarta al final de esa solicitud. Las consultas preparadas no están disponibles para una conexión de base de datos posterior.

El escenario en el que obtendría el beneficio de una consulta preparada es cuando lo prepara y lo ejecuta muchas veces durante la misma solicitud de PHP .