查询中的PHP vs MySQL性能(如果,函数)

Mon*_*eed 8 php mysql performance benchmarking

我只看到这个艺术品

在这种情况下,我需要知道什么是最佳的绩效

如果在查询中的陈述

SELECT *,if( status = 1 , "active" ,"unactive") as status_val FROM comments

VS

<?php
    $x = mysql_query("SELECT * FROM comments");

     while( $res = mysql_fetch_assoc( $x ) ){
       if( $x['status'] == 1 ){
             $status_val = 'active';
        }else{
             $status_val = 'unactive';
        }
     }
  ?>
Run Code Online (Sandbox Code Playgroud)

从字符串切10

SELECT * , SUBSTR(comment, 0, 10) as min_comment FROM comments

VS

<?php
    $x = mysql_query("SELECT * FROM comments");

     while( $res = mysql_fetch_assoc( $x ) ){
       $min_comment = substr( $x['comment'],0,10 ) ;
     }
  ?>
Run Code Online (Sandbox Code Playgroud)

等等????? 当我使用MySQL的函数或PHP函数?

Sal*_*ali 2

这是对您的问题的一个很好的描述: DoingcalculationsinMySQLvsPHP

对于第二个示例,速度问题可能很重要。首先你不知道你的评论有多大,所以万一

$x = mysql_query("SELECT * FROM comments");

 while( $res = mysql_fetch_assoc( $x ) ){
   $min_comment = substr( $x['comment'],0,10 ) ;
 }
Run Code Online (Sandbox Code Playgroud)

您要求服务器返回所有内容(这里我指的是评论的整个长度),这可能很重要。乘以表中的行数,数据量可能相当大,您必须在 php 和 sql 之间传输这些数据。在第二种情况下,SELECT * , SUBSTR(comment, 0, 10) as min_comment FROM comments 这已经在服务器上完成,并且不需要额外的内存。

对于第一个示例,我认为在 sql 端执行它也更好,因为之后您仍然需要执行额外的循环。除此之外,将要阅读您的代码的人可能会感到困惑为什么您到底需要该代码。