sql 优化 mysql php
各位大虾,帮我优化一下这个sql语句
$sql = update `.$table.` set $field = concat('.$value['result'].{hx}',now(),'{hx}.$value['name'].{hx}.$value['op'].{hx}.$value['suggestion'].') $auditing where `id`=.$value['id'];
global $conn;
mysql_query($sql,$conn);
if($auditing == ,`check`='yes'){
$sql = select `mu_id` from `$table` where `id` = $value[id] limit 1;
$sql = mysql_query($sql,$conn);
$mu_id = mysql_fetch_array($sql);
$sql = update `member_user` set `check`='yes',`updatetime`=now() where `id` = $mu_id[0];
mysql_query($sql,$conn);
}
unset($conn);
return 审批成功;
回复讨论(解决方案) 把concat('.$value['result'].{hx}',now(),'{hx}.$value['name'].{hx}.$value['op'].{hx}.$value['suggestion'].')这个用php程序来实现,不要用sql的concat。
还有就是建立数据库索引了,这个对提高速度非常有帮助
还有吗下面那几句还能优化吗
if($auditing == ,`check`='yes'){$sql = select `mu_id` from `$table` where `id` = $value[id] limit 1;$sql = mysql_query($sql,$conn);$mu_id = mysql_fetch_array($sql);$sql = update `member_user` set `check`='yes',`updatetime`=now() where `id` = $mu_id[0];mysql_query($sql,$conn);}可以改成if($auditing == ,`check`='yes'){$sql = update `member_user` set `check`='yes',`updatetime`=now() where `id` in (select `mu_id` from `$table` where `id` = $value[id] limit 1);mysql_query($sql,$conn);//语句简化了,对有没有提升不好说,不过如果索引要做好,应该会提升的,主要针对member_user.id,mu_id,id字段做索引}
谢谢 baoxiaohua 简化了sql 语句