Php 哪个更快:数据库级的字符串连接,还是应用程序级的字符串连接?

Php 哪个更快:数据库级的字符串连接,还是应用程序级的字符串连接?,php,mysql,string,concatenation,Php,Mysql,String,Concatenation,我在DQL中有一个选择3列的简单查询: $qb->select("c.zip_code, c.name, s.state") ->where("c.zip_code LIKE :input"); 我期望的输出是 “[c.邮政编码],[c.姓名],[s.州]” 目前,我正在PHP级别上连接字符串以获得所需的字符串 使用该功能在数据库级别执行此操作是否更快?这并不是一个与优化相关的问题。你应该考虑哪一个更具可读性/实用性,我个人会在PHP级别上进

我在DQL中有一个选择3列的简单查询:

        $qb->select("c.zip_code, c.name, s.state")
           ->where("c.zip_code LIKE :input"); 
我期望的输出是

“[c.邮政编码],[c.姓名],[s.州]”

目前,我正在PHP级别上连接字符串以获得所需的字符串


使用该功能在数据库级别执行此操作是否更快?

这并不是一个与优化相关的问题。你应该考虑哪一个更具可读性/实用性,我个人会在PHP级别上进行。

这种逻辑属于你的应用程序的显示层,而不是数据库。

我想使用mysql级别 为什么我们必须注意mysql提供内置函数的这种操作 我的意见 这两种方法可能需要相同的时间

  • 我会让数据库来完成繁重的工作并连接数据,而这对于较小的应用程序可能意义不大,对于较大的应用程序,您的应用程序脚本可能会开始达到内存阈值

  • 如果您需要在不同的位置显示相同的数据,您是复制并粘贴代码还是使用相同的查询


  • 归根结底,性能现在可能是一样的,但以后的问题,如代码重用、易于更改变得更加重要

    如果有两个大致相同的选择,我相信您在本例中有,我将使用风险因素做出最终决定

    如果我以后需要在应用程序中拆分列,那么在数据库加入列之后拆分应用程序中的列即使不是不可能,也是非常昂贵的。因此,将它们加入到应用程序中的风险较小,因为我拥有以任何方式呈现它们所需的数据


    另外,我觉得扩展应用程序层比扩展数据库层更容易。您只需添加应用程序服务器。数据库瓶颈比应用程序瓶颈更难处理。

    您可以比MySql服务器更轻松地扩展PHP服务器。例如,在AWS上,您可以创建自动缩放条件,以向上/向下缩放PHP服务器实例

    是否有必要为直接比较编写一个有意义的基准?太笼统了。如今,数据库被抽象得太远了,在这两层中都没有本质上的问题。它可能与大量的请求相关,在这种情况下,缓存连接结果(memcached)将导致速度提升。我发现有些表达式更容易使用SQL。