mysql事务

Posted 尧啊尧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql事务相关的知识,希望对你有一定的参考价值。

Transaction

一.

1.概念:事务为最小的不可再分的工作单元,通常一件事务对应一套完整的业务(例如银行转账业务,该业务就是一个最小的工作单元)

2.作用:一个完整的业务需要批量的DML(insert,update,delet)语言联合共同完成,并且要保证两个端口的业务的同时成功或者同时失败

二.事务的特征

1.原子性:意为不可拆分的最小工作单元

2.一致性:执行事务前后,数据库从一个一致性状态转换到另一个一致性状态

3.隔离性:各个事务之间是相互独立的,一个用户的事务不会被其他事务所干扰

4.持久性:一个事务提交之间,对数据库的改变是持久的,应该保持相对的稳定性

三.关于事务的术语

1.Strart Transaction:开启事务

2.End Transaction:关闭事务

3.Commit Transcation:提交事务

4.Rollback Transcation:回滚事务

四.隔离级别

- READ_UNCOMMITTED(未提交读): 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读
 
- READ_COMMITTED(提交读): 允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生
 
- REPEATABLE_READ(可重复读): 对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。
 
- SERIALIZABLE(串行): 最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。但是这将严重影响程序的性能。通常情况下也不会用到该级别。
 
这里需要注意的是:mysql 默认采用的 REPEATABLE_READ隔离级别 Oracle 默认采用的

以上是关于mysql事务的主要内容,如果未能解决你的问题,请参考以下文章

MySQL事务

MySQL事务

MySQL事务

mysql 如何查询数据库事务是只读事务还是读

MySQL事务

MySQL 事务四大特性和事务隔离级别