mysql事务的特性与概念

事务的特性与概念

事务的特性

事务一共有四个特性

  1. 原子性:类似原子,原子不可分割,在mysql中的表现就是开启的事务,该事务内的sql必须执行完成,否则就回滚。
  2. 隔离性:假设数据库有一个表,表中有一行数据,该行数据有列money为500;假设有两个人分别是小张和老李,他们对该行的操作顺序如下:
小张 老李
money= read(500)
money=read(500)
money=500+5
?

那么此时表格中的问号值应该是多少呢?其实这个分很多种情况:
分别是事务隔离级别中的:未提交读、已提交读,可重复读,可串行读(这是重点,具体后面阐述)

  1. 事务的一致性:说白了,就是人为的一些约束,我们要遵守这些规则,如主键唯一之类的;
  2. 持久性:放到磁盘上;

事务的概念

事务的状态:
1.活动的:该事务正在执行 。
2.部分提交的:当commit后,事务并没有刷新到磁盘(持久性) ,就是部分提交 。
3.失败的:突发状况(断电,系统卡机)之类的原因造成事务失败。
4.中止的:由失败的事务造成事务中止,会进行事务的回滚。
5.提交的:事务已经刷新到了磁盘上。
在这里插入图片描述
事务状态之间的关系
总结:只有一个事务中止或者提交,事务的生命周期才算结束。

猜你喜欢

转载自blog.csdn.net/zcjluse/article/details/106182467
今日推荐