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

时间:2011-03-18 02:55:33

标签: mysql entity-framework-4 locking isolation-level

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

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

1 个答案:

答案 0 :(得分:36)

SHOW VARIABLES LIKE 'tx_isolation';

或者如果你有MySQL 5.1 +

SELECT * FROM information_schema.session_variables
WHERE variable_name = 'tx_isolation';

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

SHOW GLOBAL VARIABLES LIKE 'tx_isolation';

或者如果你有MySQL 5.1 +

SELECT * FROM information_schema.global_variables
WHERE variable_name = 'tx_isolation';

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

SELECT variable_value IsolationLevel
FROM information_schema.session_variables
WHERE variable_name = 'tx_isolation';

免责声明:我不知道EF4

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