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

标签 php mysql concurrency

我有一个 cli php 脚本,每当电子邮件到达特定地址时都会执行该脚本。

当一封新电子邮件到达时,会执行一个新的脚本实例,但由于它们读取/写入相同的数据库表,有时会写入错误的数据。

我的问题是,如果第一个脚本锁定了它需要的所有表,并且脚本的第二个/第三个等实例运行,他们会等待表被第一个执行的脚本解锁吗?如果是,持续多长时间?

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

最佳答案

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

关于php - 如果 php 脚本想从锁定的表中读取,它会等待吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16870437/

相关文章:

php - Magento 1.8.1 数据库 ON DUPLICATE KEY 未在 Catalog_product_entity_varchar 中执行 UPDATE

java - J2ME数据库更新问题

python - 从 Python 字典中插入值,包括 MySQL 的键

java - 如何使 Spring JMSListener 爆发到最大并发线程数?

java - LongAccumulator 没有得到正确的结果

c# - 使用 async/await 是 Web 服务的好主意吗?

javascript - 尝试 POST "select"HTML 表单输入时出现 PHP 错误

php - 更改表格整列的时区

javascript - onclick 将值传递给弹出模式

mysql - MySQL 和 MSSQL 服务器上的 UNIX 时间戳