导读
我们知道可以在线修改全局或会话级的事务隔离级别,也可以修改时不指定GLOBAL/SESSION关键字,而只影响当前会话中的下一个事物,但怎么确认修改生效了?
可以分别用@@global.transaction_isolation和@@ session.transaction_isolation来查看全局或会话级隔离级别,或用 @@transaction_isolation查看会话级隔离级别。也就是说:@@session.transaction_isolation和@@transaction_isolation二者等价。
在MySQL里,可以在线修改全局或会话级的事务隔离级别,例如:
可看到全局和会话级的隔离级别是不一样的。
另外,在修改隔离级别时若不指定GLOBAL/SESSION关键字,则只会针对当前会话的下一个事务生效,下一个事务结束后,又会恢复当前会话此前设定的隔离级别。但可能有些同学不太放心,或可能就想确认某个事务的隔离级别。接下来,一起来看下,怎么查看确认某个事务的隔离级别。这种情况下,需要借助information_schema.innodb_trx视图,看下面例子。
最后几点结论:
1、执行select @@tx_isolation等同于执行select @@session.tx_isolation(或执行show variables like ‘transaction_isolation‘),只能看到当前会话(session)的隔离级别。
2、执行select @@global.tx_isolation查看全局隔离级别设置和执行show global variables like ‘transaction_isolation‘一样。
3、想要查看具体某个事务里的隔离级别,需要在information_schema.innodb_trx视图中确认。
相关文章
FAQ系列 | 修改事务隔离级别的暗门,https://mp.weixin.qq.com/s/Q6237ZCBqR4ZBERyzmYiUg
enjoy MySQL :)
This post has already been read 6860 times!
原文:https://www.cnblogs.com/OrcinusOrca/p/14674999.html