Estoy buscando acelerar algunas consultas utilizando declaraciones preparadas en un sitio con mucho tráfico. Lo que no creo que entiendo correctamente es el beneficio de usar declaraciones preparadas a menos que puedan mantenerse preparadas a través de múltiples conexiones. parece que esto no es posible con PDO, que tampoco permite conexiones persistentes. pero las funciones de conexión persistentes no permiten PDO.mysql declaraciones preparadas permanentemente
digamos que para el bien de los argumentos estoy funcionando una consulta 5.000 veces por segundo: SELECT * FROM some_table DONDE some_column COMO 'some_value'
Por lo que entiendo, DOP impediría MySQL desde re-compilación y evaluación de la consulta si tuviera que cambiar "some_value" cada vez que necesitaba consultar. También entiendo que "some_value" podría transmitirse en binario en lugar de ASCII para ahorrar ancho de banda, pero no ahorraría mucho si tuviera que enviar toda la consulta cada vez que abro la conexión.
también por lo que he leído, los procedimientos almacenados no son la solución, porque tampoco se compilan a través de múltiples conexiones.
¿hay alguna solución a este problema? ¿almacenar una declaración preparada en el servidor en alguna parte y mantenerla compilada en memoria y lista para disparar tan pronto como reciba las variables?
¿Hay alguna manera de que esto suceda al combinar la agrupación de conexiones con PDO? (Aunque también he escuchado que la agrupación de conexiones no es ideal porque puede causar bloqueo en ciertas condiciones)
Si desea utilizar conexiones persistentes, debe establecer PDO :: ATTR_PERSISTENT en la gama de las opciones del controlador pasa al constructor de PDO . Si establece este atributo con PDO :: setAttribute() después de la instanciación del objeto, el controlador no usará las conexiones persistentes. –
¿Por qué no utilizar Memcached? –