Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

View isolation level for a query in mysql

Tags:

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.

like image 775
reustmd Avatar asked Mar 18 '11 02:03

reustmd


1 Answers

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.

like image 101
RolandoMySQLDBA Avatar answered Nov 09 '22 05:11

RolandoMySQLDBA