MySQL8中隔离级别的变量跟之前的版本不一样,之前是tx_isolation,MySQL8改成了transaction_isolation。查看当前隔离级别的命令是
select @@global.transaction_isolation,@@transaction_isolation;
返回结果
+--------------------------------+-------------------------+
| @@global.transaction_isolation | @@transaction_isolation |
+--------------------------------+-------------------------+
| READ-COMMITTED | REPEATABLE-READ |
+--------------------------------+-------------------------+
1 row in set (0.00 sec)
mysql的默认隔离级别是可重复读,但其实对高并发业务来说,可重复读并不是最合适的,最合适的是读提交,主要是因为MySQL 5.0之前,MySQL的主从复制在度提交这个隔离级别下是有bug的。
修改MySQL隔离级别命令:
修改全局隔离级别为读提交:
SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
修改会话隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
注:以上命令可大小写混用
这里要吐槽一下MySQL的命令,感觉比较混乱。比如查询出来的隔离级别是两个单词用短横线连接(READ-COMMITTED),但是设置的时候又是要把两个单词用空格分隔。风格很不统一。