如果想要从锁定的表中读取,php脚本会等待吗?

jim*_*mmy 5 php mysql concurrency

我有一个cli php脚本,只要电子邮件到达特定地址就会执行.

当新电子邮件到达时,将执行该脚本的新实例,但由于它们读/写相同的DB表,有时会写入错误的数据.

我的问题是,如果第一个脚本锁定了它需要的所有表,并且运行了脚本的第二个/第三个等实例,它们是否会等待第一个执行脚本解锁表?如果是这样,需要多久?

最后我要做的是让脚本以串行方式一个接一个地进行读/写操作,以避免重复和错误.

Bar*_*mar 3

是的,它会等待。这是由数据库服务器完成的,客户端应用程序完全不知道它正在发生——据它所知,数据库只是执行查询的速度很慢。