2011-02-01 102 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可能需要更多的资源,因为它是一个多功能解释器。

对使用​​的硬件类型影响较大;如果它只是一小部分数据,那么可能无论如何都不重要。