2011-02-01 17 views
5

Quería saber que cuando se le da la opción, ¿es más rápido hacer el procesamiento con php o mysql? Por ejemplo, supongamos que quiero para concatenar dos valores de dos columnas debo hacer¿Es php o sql más rápido para las operaciones básicas?

SELECT col1,col2 FROM table WHERE conditions 

Y luego concatenar en php

o debería hacer

SELECT CONCAT(col1,col2) as concatenated FROM table WHERE conditions 

y luego no tener para concatenar?

Otro ejemplo sería limitar el tamaño de cadenas devueltas que se puede hacer en sql con IZQUIERDA o en php usando substr

Si son la misma velocidad, entonces, que es el método preferido?

Estoy usando la versión más reciente de xampp en una máquina con Windows 7.

Respuesta

11

En su mayor parte, realizar operaciones por lotes en sus datos va a ser más rápido a nivel de la base de datos. Los motores están optimizados para trabajar con conjuntos de datos como este, y pueden procesar y transferir datos simultáneamente (para conjuntos de resultados muy grandes).

2
  1. En caso de duda, referente a cabo
  2. Basado en su ejemplo, es más rápido que hacerlo en un solo paso en la base de datos vs 2 pasos (base de datos, entonces PHP)

Sería diferente si estuviera comparando datos almacenados en una base de datos en comparación con datos almacenados en otra parte, quizás ya en la memoria. PHP puede tener algunas funciones que podrían igualarlo, pero generalmente las bases de datos están optimizadas para trabajar con tipos de datos específicos y procesar solo un conjunto limitado de instrucciones, mientras que PHP puede requerir más recursos, ya que es un intérprete multifuncional.

Un mayor impacto sería en el tipo de hardware utilizado; y si solo se trata de un pequeño conjunto de datos, probablemente no importará de ninguna manera.

Cuestiones relacionadas