2011-05-06 69 views
0

我有一些需要处理的大量数据:MySQL中的一个非常大的表。处理发生三次。现在我正在向MySQL发出一个请求,然后在PHP中运行一个while循环三次以提取必要的值。哪个更快:在PHP中处理数据还是发出多个MySQL请求?

是我目前正在做的最好的选择,还是它会使用较少的服务器资源向某个过滤器发出三个独立的请求到MySQL?

+6

请详细描述您用于处理数据的算法。你也可以澄清一张“非常大”的桌子有多大? – 2011-05-06 11:39:51

+2

您需要详细阐述我们能够给出正确的答案。有很多因素可以改变这个问题。在处理大型数据集时,一种解决方案通常是“更改数据库引擎”。我每天使用的东西通常处于使用RDBMS时可能会忘记的级别。更好地描述问题,我们可以提供有关工具和攻角的建议。 – Christopher 2011-05-06 11:52:34

+1

实施两个。衡量两者。优化两者。再次测量。决定。 – roryf 2012-12-11 13:18:58

回答

0

在这种情况下尽可能地使用MySQL。这可能会更快。

编辑:正如下面所指出的那样,在PHP中处理SQL查询并不总是更好,因此,上面的语句可能会引起误解。

但是,从这个问题的措辞,我假定他从MySQL查询返回一个大的记录集,并使用几个while循环从记录集中只提取某些值。如果这个假设是真的,那么我相信在MySQL查询中执行整个操作会更快,更少的资源消耗。

由于这个答案对于发现类似问题的人来说并不是很有帮助,如果原始海报可以张贴一些代码来澄清确切的情况,那将是非常有用的。

+1

这是真的,直到一点 – 2011-05-06 11:40:11

+0

这不一定是真的。如果你没有正确使用索引,那么当然也可能会有其他因素。但我认为这是一个雄心勃勃的话。 – James 2011-05-06 11:41:25

+0

@詹姆斯是的,但我已经对他的问题措辞中的数据做了一些假设。在我看来,他只是从表中选择了某些值,而没有事先处理这些值。一个MySQL Select语句,甚至是一个复杂的语句,很可能比使用PHP(可能使用循环和ifs相当多)要快得多。另外,如果这些语句使用频率很高,那么MySQL将自动执行的索引和缓存将大大增加查询的速度,这些查询不会发生在PHP中,只需PHP – eyaka1 2011-05-06 11:45:47

相关问题