在mysql中查看查询的隔离级别

man*_*u08 23 mysql locking isolation-level entity-framework-4

如何确定给定查询的隔离级别?在执行查询(由第三方应用程序)之后,我想知道使用了哪个隔离级别(例如,读取未提交).

为了清楚起见,我目前正在开发一个使用EF4运行mysql 5.1的应用程序.我尝试测试不同的编码模式以更改特定EF4查询的隔离级别.我需要能够测试并确保正确设置隔离级别.

Rol*_*DBA 36

SHOW VARIABLES LIKE 'tx_isolation';
Run Code Online (Sandbox Code Playgroud)

或者如果你有MySQL 5.1+

SELECT * FROM information_schema.session_variables
WHERE variable_name = 'tx_isolation';
Run Code Online (Sandbox Code Playgroud)

如果您想知道服务器全局配置了什么,请将以上内容更改为以下内容:

SHOW GLOBAL VARIABLES LIKE 'tx_isolation';
Run Code Online (Sandbox Code Playgroud)

或者如果你有MySQL 5.1+

SELECT * FROM information_schema.global_variables
WHERE variable_name = 'tx_isolation';
Run Code Online (Sandbox Code Playgroud)

如果要使查询显示正在使用的事务隔离,请运行以下命令:

SELECT variable_value IsolationLevel
FROM information_schema.session_variables
WHERE variable_name = 'tx_isolation';
Run Code Online (Sandbox Code Playgroud)

免责声明:我不知道EF4

如果允许在要由EF4运行的SQL中嵌入子查询,则可能必须将此查询作为子查询嵌入(或将查询作为子查询嵌入)并显示变量IsolationLevel以及实际查询的结果.