如何设置MySQL 5.1 InnoDB的隔离级别?
输入以下命令:
mysql> show variables like '%isola%';
InnoDB的默认隔离级别是可重复读。
如何更改隔离级别?
如何设置MySQL 5.1 InnoDB的隔离级别?
输入以下命令:
mysql> show variables like '%isola%';
InnoDB的默认隔离级别是可重复读。
如何更改隔离级别?
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SESSION
是可选的,它仅限制设置在当前会话中。
READ UNCOMMITTED
将被替换为您想要的级别。
https://dev.mysql.com/doc/refman/8.0/en/set-transaction.html
PERSIST
范围,即使重新启动MySQL,事务隔离级别也不会重置:SET PERSIST TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
或者:
SET PERSIST transaction_isolation = 'READ-UNCOMMITTED';
使用GLOBAL
范围,在重新启动MySQL后,事务隔离级别将被重置:
SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
或者:
SET GLOBAL transaction_isolation = 'READ-COMMITTED';
使用SESSION
作用域,在注销MySQL后,事务隔离级别将会被重置:
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
或者:
SET SESSION transaction_isolation = 'REPEATABLE-READ';
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
或者:
SET transaction_isolation = 'SERIALIZABLE';
只需在连接到MySQL数据库时将其添加到连接字符串中即可。
?sessionVariables=transaction_isolation='READ-COMMITTED'
您可以检查其他隔离级别的值。
我的默认隔离级别也是REPEATABLE READ,使用上面的示例可以更改当前会话,但如果您想完全更改它,可以尝试使用此命令:
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
测试于Mysql服务器版本:5.7.23-0ubuntu0.18.04.1(Ubuntu)