Mysql 更改事务隔离级别的原则
我想将mysql数据库的所有查询/更新的事务隔离级别更改为“已提交”。由于我们使用的是google应用程序数据库,我们无法在mysql配置中更改它,因此需要在与数据库的连接中更改它 我们正在使用条令和Symfony3,我正在努力了解除了发出如下命令之外,如何实现这一点Mysql 更改事务隔离级别的原则,mysql,doctrine,transaction-isolation,Mysql,Doctrine,Transaction Isolation,我想将mysql数据库的所有查询/更新的事务隔离级别更改为“已提交”。由于我们使用的是google应用程序数据库,我们无法在mysql配置中更改它,因此需要在与数据库的连接中更改它 我们正在使用条令和Symfony3,我正在努力了解除了发出如下命令之外,如何实现这一点 $this->getEntityManager()->getConnection()->prepare('SET TRANSACTION ISOLATION LEVEL READ COMMITTED')->
$this->getEntityManager()->getConnection()->prepare('SET TRANSACTION ISOLATION LEVEL READ COMMITTED')->execute();
我很确定有人支持更改事务隔离,但我似乎不知道如何实现这一点。文档:
条令\DBAL\连接还具有控制底层数据库支持的事务隔离级别的方法。连接#setTransactionIsolation($level)和连接#getTransactionIsolation()可用于此目的。可能的隔离级别由以下常量表示:
有关隔离级别的常量列表,请参阅文档
因此,您可以在每个连接上运行:
$this->getEntityManager()->getConnection()->setTransactionIsolation($level);
如果您希望它是默认值,因此不必在每个连接中都设置它,那么您必须在MySQL服务器的my.cnf
文件中设置它。看
如果无法全局更改
my.cnf
,则必须使用如上所示的代码行为每个连接自行设置。谢谢比尔-在Symfony中,doctor.yaml文件用于配置连接,也许我误解了,但我不清楚如何配置应用程序以始终在连接时设置事务隔离