Java 杂谈PHP经验分享

MySQL之事务隔离级别

2019-02-24  本文已影响6人  AlicFeng

前言

MySQL事务主要用于处理一个包含操作量比较大、复杂的业务。比如说,删除一个学生,我们除了要删除该学生的基本信息,同时也要删除考试记录、违规记录等。诸多的操作组成一个事务。事务是用来管理insertupdatedelete基本指令的。当MySQL使用innodb引擎的前提下才支持事务操作。

事务的基本特点

隔离性的类别

MySQL数据库中,引擎默认使用repeatable read

# SELECT @@tx_isolation 或者 SELECT @@transaction_isolation
# MySQL 8.x 
# transaction_isolation在MySQL 5.7.20中添加了作为别名 tx_isolation,现已弃用,并在MySQL 8.0中删除。
# 应调整应用程序transaction_isolation以优先使用 tx_isolation。
mysql> SELECT @@transaction_isolation;
+-------------------------+
| @@transaction_isolation |
+-------------------------+
| REPEATABLE-READ         |
+-------------------------+
1 row in set (0.01 sec)

事务的并发问题

事务隔离级别的影响

事务隔离级别 脏读 不可重复读 幻读
读未提交 | read uncommitted
读已提交 | read committed 不会
可重复读 | repeatable read 不会 不会
串行化 | serializable 不会 不会 不会

事务隔离性说明

上一篇 下一篇

猜你喜欢

热点阅读