Mysql 8的默认事务隔离级别为REPEATABLE-READ(重复读),oracle默认的隔离级别为READ COMMITTED(读已提交) MySQL8查询事务应该使用transaction_isolation,tx_isolation在MySQL 5.7.20后被弃用。
1.不考虑事物的隔离级别,会导致一下问题
- 脏读
- 不可重复读
- 幻读
对出现的三个问题的解释 (1)脏读:就是一个事物读取了还未提交的事物的改变(update,insert,delete) (2)不可重复读:就是事物的修改(update)和删除(delete)的之后,然后提交,但是其他事物可进行读取它所作的删除和修改 (3)幻读:就是事物的插入操作之后,然后提交,但是其他事物可进行读取它所作的插入的内容
2.事物的隔离级别,以及所产生的问题
3.设置事物的隔离级别
(1)查看当前事物对话的隔离级别
select @@transaction_isolation;
(2)查看当前系统的隔离级别
select @@global.transaction_isolation
(3)设置当前对话的隔离级别
set session transaction isolation level read uncommitted(设置读未提交)
set session transaction isolation level read committed(设置读已提交)
set session transaction isolation level repeatable read(设置可重复读)
set session transaction isolation level Serializable(可串行化)
|