在 MySQL 事务中 运行 整个 PHP 应用程序是否可以?

Is it ok to run whole PHP application in a MySQL transaction?

在MySQL事务中运行整个PHP应用程序可以吗?

有没有副作用?

我的意思是这样的:

  1. 客户请求A.php
  2. A.php -> 开始mysql交易
  3. A.php -> 执行并处理请求
  4. A.php -> 提交 mysql 事务
  5. 向客户端发送请求的数据

我不会将此 运行 称为一个事务中的整个 PHP 应用程序 ,而是一个处理每个请求的 PHP 脚本在单独的交易中。

没关系,只要您了解与事务相关的概念,例如锁定、死锁、饥饿...本质上,您应该喜欢在任何其他环境中不要锁定数据库对象超过必要的时间,更喜欢细粒度行锁优于完整 table 锁并保护您的数据库免于死锁。

但是由于这些相同的概念适用于纯 SQL 基于引擎(存储过程)的解决方案,因此没有特别的理由不在 PHP 中执行此操作。