2012-02-10 12 views
8

He extendido la clase PDO para crear una clase de base de datos simple y actualmente uso prepare + execute para todas las consultas ejecutadas en la base de datos, incluso las que lo hacen no tiene parámetros (por ejemplo, SELECCIONAR * FROM tabla).PDO :: query vs. PDOStatement :: execute (PHP y MySQL)

La pregunta es: ¿hay un beneficio en el rendimiento para usar realmente la consulta PDO :: para consultas simples que no tienen parámetros, en lugar de preparar/ejecutar?

+1

@summea En realidad ambos devuelven 'PDOStatement', usted está pensando en' PDO :: exec', pero eso no es un problema aquí. – pmm

+0

Buen punto; Yo siempre los mezclo ... – summea

Respuesta

8

Sí, porque cuando llame al PDO::prepare, el servidor debe crear un plan de consulta y metainformación para esa consulta, luego hay una sobrecarga adicional para enlazar los parámetros especificados cuando usa PDO::execute. Por lo tanto, para ahorrar esta sobrecarga y mejorar el rendimiento, puede usar PDO::query para consultas sin parámetros.

Sin embargo, dependiendo de la escala y el tamaño de su aplicación, y su configuración de servidor/host (compartida/privada), puede que no vea ningún aumento en el rendimiento.

1

Hay una diferencia medible entre hacer cualquier cosa de dos maneras diferentes en PHP. Debe evaluar el valor que tiene cada método para usted y crear casos de prueba para ver si vale la pena que haga las cosas de una manera u otra.