View isolation level for a query in mysql

与世无争的帅哥 提交于 2019-11-30 11:24:27

问题


How do I determine the isolation level in use for a given query? After a query is executed (by a 3rd party application) I'd like to know which isolation level was used (e.g., read uncommitted).

To be clear, I'm currently working on an application that uses EF4 running against mysql 5.1. I'm try to test different coding patterns to change isolations levels for specific EF4 queries. I need to be able to test and make sure the isolation levels are being set correctly.


回答1:


SHOW VARIABLES LIKE 'tx_isolation';

or if you have MySQL 5.1+

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

If you want to know what the server has configured globally, change the above to the following:

SHOW GLOBAL VARIABLES LIKE 'tx_isolation';

or if you have MySQL 5.1+

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

If you want to make the query reveal what transaction isolation is being used, run this:

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

DISCLAIMER : I DO NOT KNOW EF4

If you are allowed to embed subqueries in the SQL about to be run by EF4, you may have to embed this query as a subquery (or embed you query as a subquery) and display the variable IsolationLevel along with the results of the actual query.



来源:https://stackoverflow.com/questions/5347567/view-isolation-level-for-a-query-in-mysql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!