2011-02-01 24 views
5

我想知道,當給出選項時,使用php或mysql處理速度更快嗎? 例如,讓我們說,我想從兩列連接兩個值我應該做的php或sql的基本操作速度更快

SELECT col1,col2 FROM table WHERE conditions 

然後在PHP串聯

,或者我應該做的

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

再不用連接?

另一個例子是在限制返回的字符串的尺寸,其可以在SQL如果它們是相同的速度,然後這是首選的方法來進行與LEFT或在PHP使用SUBSTR

我在Windows 7機器上使用最新版本的xampp。

回答

11

對於大多數情況,在數據庫級別對數據執行批處理操作會更快。這些引擎針對這類數據集進行了優化,並且可以同時處理和傳輸數據(用於非常大的結果集)。

2
  1. 有疑問時,基準出來
  2. 根據您的例子,它的速度更快做一步就在數據庫中對2層的步驟(數據庫,然後PHP)

這將會是如果您將存儲在數據庫中的數據與其他地方存儲的數據(可能已存儲在內存中)進行比較,則不同PHP可能有一些功能可以使它相同,但通常數據庫經過優化以使用特定的數據類型並僅處理一組有限的指令,而PHP可能需要更多的資源,因爲它是一個多功能解釋器。

對使用​​的硬件類型影響較大;如果它只是一小部分數據,那麼可能無論如何都不重要。