win2003 +php5+mysql5有两个数据库data1 有一个 tb 和 data2 tb结构一样mysql_query("lock tables data1.tb write,data2.tb write")
$row=mysql_query("select * from data1.tb where state=1 limit 0,10");
while($field=mysql_fetch_array($row)){   $sql="insert into data2.tb()values(data1.tb数据)";
  if(mysql_query($sql)){
      mysql_query("update data1.tb set state=1 where ID=data1.tb");  }
}如果并发稍微多一点就超级慢,有什么好的解决方案

解决方案 »

  1.   

    1.不清楚你为什么之前要锁表.而且你操作完了之后没有解锁:unlock tables;2.你的操作逻辑为什么不放在存储过程里边或者使用一个sql语句来实现.3.不使用锁而是使用事务不是可以达到同样的效果吗.
      

  2.   

    1.unlock tables 我有忘写了
    2.数据库刚刚升级到5.0 
    3.因为并发太多,使用事物的时候,有可能 data1的一条数据 插入data2两次
      

  3.   

    使用事务能达到同样的效果吗??还有如果用同一sql怎么写