2011-02-01 8 views
5

Volevo sapere che quando viene fornita l'opzione, è più veloce eseguire l'elaborazione con php o mysql? Per esempio, consente di dire che voglio per concatenare due valori da due colonne devo fareÈ php o sql più veloce per le operazioni di base

SELECT col1,col2 FROM table WHERE conditions 

E poi concatenare in php

o devo fare

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

e poi non hanno concatenare?

altro esempio potrebbe essere limitante la dimensione delle stringhe restituite che può essere fatto in SQL con LEFT o in php usando substr

Se sono la stessa velocità allora che è il metodo preferito?

Sto usando la versione recente di xampp su una macchina Windows 7.

risposta

11

Per la maggior parte, l'esecuzione di operazioni batch sui dati sarà più rapida a livello di database. I motori sono ottimizzati per lavorare con insiemi di dati come questo, e possono simultaneamente elaborare e trasferire dati (per set di risultati molto grandi).

2
  1. In caso di dubbio, punto di riferimento fuori
  2. In base a tuo esempio, è più veloce di farlo in un solo passo nel database vs 2 passi (database allora PHP)

Sarebbe diverso se si confrontassero i dati memorizzati in un database rispetto ai dati memorizzati altrove, forse già in memoria. PHP potrebbe avere alcune funzioni che potrebbero renderlo uguale, ma generalmente i database sono ottimizzati per lavorare con tipi di dati specifici e elaborare solo un numero limitato di istruzioni, mentre PHP potrebbe richiedere più risorse, poiché è un interprete multifunzionale.

Un impatto maggiore sarebbe sul tipo di hardware utilizzato; e se si tratta solo di una piccola serie di dati, probabilmente non avrebbe importanza in alcun modo.

Problemi correlati