参考链接:https://www.bilibili.com/video/BV1Vt411z7wy?p=61
事务的四大特性:
- 原子性:事务是最小的单位,不可以再分割
- 一致性:事务中的sql语句,执行要么全部失败,要么全部成功
- 隔离性:事务1和事务2之间是具有隔离性的
- 持久性:事务一旦commit,就不可以返回
- 原子性和一致性的具体区别:https://www.cnblogs.com/william-dai/p/10903929.html
事务开启:
方法一:set autocommit=0,可以 select @@autocommit查看autocommit的值
方法二:begin
方法三:start transaction
事务手动提交:
commit
事务回滚:
rollback
脏读:一个事务读到另外一个事务未提交的内容
幻读:一个事务读不到另一个事务已经提交的内容
事务的隔离性:
read uncommitted 一个事务读到另一个事务未commit的内容
read committed 一个事务读到另一个事务commit的内容,也叫不可重复读
repeatable read 幻读,也就是读不到另一个事务已经commit的内容
serializable 串行化:一个事务的写操作要等到另外一个事务结束才可以执行。
隔离的性能级别从上往下越来越差
默认未repeatable read
查看隔离级别
select @@global.transaction_isolation
修改隔离级别为:read uncommit
set global transaction isolation level read uncommit;