sql >> Base de Datos >  >> RDS >> Mysql

¿Debo usar declaraciones preparadas para MySQL en PHP PERFORMANCE-WISE?

La Historia

Esta fue mi primera respuesta de Stackoverflow. Mucho ha cambiado desde entonces, especialmente la obsolescencia y eliminación de la API mysql. Incluso si todavía está en php 5.6, no se debe usar la API mysql_*. Ahora PDO o mysqli son las únicas opciones para elegir. PDO es mejor por muchas razones.

¿Se almacenan en caché las declaraciones preparadas al cargar la página?

La misma declaración preparada no se utilizará entre cargas de página. Tiene que estar preparado cada vez. Si es importante exprimir cada milisegundo grande, un procedimiento almacenado podría ser una buena idea (suponiendo que tiene una consulta complicada).

Para inserciones grandes (miles de filas), probablemente se pueda obtener un impulso mayor volcando sus datos en un archivo de texto y cargándolo con LOAD DATA IN FILE . Es mucho más rápido que una serie de inserciones.

La respuesta original

La verdad del asunto es que a veces mysqli es más rápido y en otras ocasiones mysql api es más rápido. Pero la diferencia es realmente muy pequeña. Si observa cualquiera de las pruebas de rendimiento en la web, la diferencia es realmente solo de 10 a 20 milisegundos. La mejor manera de aumentar el rendimiento es optimizar el diseño de la tabla.

Muchas de las pruebas que 'prueban' que la API anterior es más rápida olvidan convenientemente que, para máxima seguridad, se debe llamar a mysql_real_escape_string() para cada variable utilizada en la consulta.

El servidor almacena en caché las consultas, si y solo si los datos de todas las tablas que se utilizan en la consulta no han cambiado.

Espere otra actualización con números reales