##### 一般在语言级别(PHP)涉及到的事务就是,开启事务,执行数据库操作,提交事务/回滚事务。那么我们会在语言级别里用到例如:指定事务隔离级别,加锁(包括指定锁类型),解锁等操作吗? 答案: (1)正常情况 指定事务隔离级别 => 在数据库上做。 加锁(包括指定锁类型),解锁 => 可以在语言级别/业务层面上来做 (2)底层原理 数据隔离级别,一般是在数据启动的配置文件中设置好的,没有特殊场景的话不需要在程序代码中设置。 对于一些需要独占资源的操作,需要在代码中使用SELECT ... FOR UPDATE类似的代码加锁(排他所),然后通过COMMIT/ROLLBACK进行事务处理,数据库自己会释放对应的锁。 (3) php也可以实现指定隔离级别,代码如下 $pdo->exec('SET TRANSACTION ISOLATION LEVEL READ COMMITTED');