PHP против производительности MySQL (если, функции) в запросе

Я просто вижу эту фигуру

мне нужно знать, что лучше всего в этом случае

если заявка в запросе

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

В.С.

 <?php $x = mysql_query("SELECT * FROM comments"); while( $res = mysql_fetch_assoc( $x ) ){ if( $x['status'] == 1 ){ $status_val = 'active'; }else{ $status_val = 'unactive'; } } ?> 

Вырезать 10 из строки

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

В.С.

 <?php $x = mysql_query("SELECT * FROM comments"); while( $res = mysql_fetch_assoc( $x ) ){ $min_comment = substr( $x['comment'],0,10 ) ; } ?> 

и т.д ????? и Когда я использую функции MYSQL или функции PHP?

    Вот хорошее описание вашего вопроса: Выполнение вычислений в MySQL vs PHP

    В случае второго примера проблема скорости может быть значительной. Прежде всего, вы не знаете, насколько велики ваши комментарии, поэтому в случае

     $x = mysql_query("SELECT * FROM comments"); while( $res = mysql_fetch_assoc( $x ) ){ $min_comment = substr( $x['comment'],0,10 ) ; } 

    вы попросите свой сервер вернуть вам все (здесь я имею в виду всю длину комментария), и это может быть значительным. Умножая на количество строк в таблице, это может быть довольно большой размер данных, который вы должны перенести между php и sql. Во втором случае этот SELECT * , SUBSTR(comment, 0, 10) as min_comment FROM comments будет уже выполнен на сервере и не потребует дополнительной памяти.

    В случае первого примера, я думаю, что это также лучше сделать на стороне sql, потому что вам все равно придется делать дополнительный цикл после этого. Кроме того, люди, которые будут читать ваш код, могут быть смущены, почему именно вам нужен этот код.

    Это зависит. С сетевой точки зрения, в первом VS, выигрывает PHP, а во втором VS выигрывает MYSQL. Это потому, что вы отправляете меньше данных через сокет. И, таким образом, скрипт становится быстрее.

    В этом случае использование функций MySQL не позволяет вам переходить на PHP и экономит много кода.

    В других случаях у них нет альтернативы: например, когда вы используете их в части WHERE .

    Что касается производительности, то в большинстве случаев разница тривиальна: используйте простейшее решение.

    Только ответ: Измерьте это! У вас есть два рабочих решения и вы хотите достичь наилучшего времени выполнения.

    Я бы сказал, все зависит от систем с обеих сторон и от текущей нагрузки. Обычно серверы БД более толстые, чем настольные компьютеры, и было бы быстрее сделать все это на стороне БД, а не разделить его и частично использовать PHP.