数据库语句是:
   $sql = " UPDATE mdl_course_selflearn_fintest4 
            SET status = '$sta_v', comments = '$com_v' 
            WHERE userid = '$idu'         //userid是固定的
                  AND selfid = '$sel_v' ";//selfid是for循环自增的
分别用了
   mysql_query($sql);逐条执行,
   或者组成数组批量执行mysqli->multi_query($sql);
效率都不是太高,大概一条近1秒求指导,怎么改进?

解决方案 »

  1.   

    在userid和selfid上加联合索引alter table  mdl_course_selflearn_fintest4  add index(userid,selfid)
      

  2.   

      $sql = " UPDATE mdl_course_selflearn_fintest4 
      SET status = '$sta_v', comments = '$com_v' 
      WHERE userid = '$idu' //userid是固定的
      AND selfid = '$sel_v' ";//selfid是for循环自增的建议改成这样:用 for 循环生成所有的 selfid 列表,格式如下:
      $sql = " UPDATE mdl_course_selflearn_fintest4 
      SET status = '$sta_v', comments = '$com_v' 
      WHERE userid = '$idu' //userid是固定的
      AND selfid in ('$sel_v1', '$sel_v2', '$sel_v3', ... '$sel_vn')";
      

  3.   

    那你岂不是让人家都更新成一个'$com_v'