2010-07-25 49 views
3

我在PHP中有几个代码来完成MySQL可以做的工作。把工作交给MySQL还是PHP?

如排序,从不同的MySQL表合并每一个数据,等等

最近,我发现我可以做所有这些东西与一个MySQL查询。

我想知道是否将MySQL能够工作的工作交给MySQL或PHP。 效率,速度等。

谢谢你,如果你让MySQL的处理这项工作

+0

我希望得到一个明确的答案。通常我只是使用PHP,因为我的PHP技能比我的SQL技能更强大,但如果它们确实快得多或效率更高,我可能会更多地使用内置的MySQL函数。 – ubiquibacon 2010-07-25 05:52:32

回答

2

如果您在PHP这样做,你只是重新实现是,MySQL已经具有的功能。它远离最优化的解决方案,因此速度更慢。

您应该明确地在SQL查询中执行此操作。

2

你的表现会增加。

1

在MySQL中做它。毫无疑问,这是更有效的。比如,PHP会使用更多的内存。

2

在MySQL中执行此操作会更好。首先,它优化了数据的排序算法,并可以利用创建的索引。此外,如果它正在合并和过滤,则最终将从数据库中传输更少的数据。

2

数据库经过优化,可在检索数据时执行这些功能。在数据库级别排序比在PHP上编写数十行代码更容易阅读

在MySQL中有可用的字符串函数来合并数据,同时从数据库中检索数据。

我绝对会建议MySQL。

黑毡帽Luniya

1

没问题:MySQL是为此而构建的。 要添加一些东西,也许你会对构建联合表查询(多个表查询)感兴趣。这是非常有用的,非常简单。例如:

$query = "SELECT DISTINCT post.title as title, post.id as id, 
        product.imageURL as imageURL, product.dueDate as dueDate 
        FROM post, product 
        WHERE post.status='saved' 
        AND post.productURL=product.linkURL 
        AND post.userEmail='$session[userEmail]' 
        AND NOT EXISTS(
         SELECT publication.postId FROM publication 
         WHERE publication.postId=post.id 
         ) 
        ORDER BY post.id"; 

这是我构建的一些代码的一个简单示例。 事情是它合并了2个不同的表格,其中post.productURL = product.linkURL的限制。它也使用否定,当你正在寻找的集合没有被任何条件定义,而是没有定义时,它是非常有用的。 您也可以通过在MySQL中构建视图来避免这种情况。

我是新手,所以我希望它有帮助。干杯。