Drozdd
Новичок
Где лучше выполнять операции - на php или MySQL
Собственно тема следующая, есть скрипт, который по определенным условиям выбирает определенную строку, причем все операции проделывает на стороне mysqsl, используя пользовательские переменные:
Можно сделать альтернативу без пользовательских переменных, где все операции выполняются на стороне php скрипта, mysql выдает только данные и обновляет их:
вопрос в том как лучше сделать - какой из скриптов будет меньше жрать ресурсов и быстрее выполнятся?
Собственно тема следующая, есть скрипт, который по определенным условиям выбирает определенную строку, причем все операции проделывает на стороне mysqsl, используя пользовательские переменные:
PHP:
mysql_query("SELECT @id:=0,@i:=0.0,@k:=SUM(d_in*k) FROM table WHERE displ=1");
mysql_query("SELECT IF((".(mt_rand(0,1000)/1000)."<=@i:=@i+d_in*k/@k),IF(@id=0,@id:=id,0),0) FROM table WHERE displ=1 ORDER BY d_in*k DESC");
mysql_query("UPDATE table SET t_out=t_out+1 WHERE id=@id LIMIT 1");
$r=mysql_query("SELECT id FROM table WHERE id=@id LIMIT 1");
$d=mysql_fetch_assoc($r);
echo$d["id"];
PHP:
$r=mysql_query("SELECT * FROM table WHERE displ=1");//здесь в переменную $r получаю все данные - порядка 50 строк
//дальше эти данные обрабатываются php скриптом
//который вычисляет нужный id, принцип такой же что и в предыдущих запросах
//скрипт на пару циклов, занимает 10-15 строк, здесь его не привожу, на выходе выдает $id
mysql_query("UPDATE table SET t_out=t_out+1 WHERE id='".$id."' LIMIT 1");
echo$id;