1、数据库事务?

先附上一段早年的代码:
MySQL优化-事务
不用管具体的业务,简单说就是两条sql语句同时丢到数据库执行。

问题 : 如果第一条sql执行完成了,突然服务器断电死机了,又或者在执行到第二条sql时候 参数传的不对,引发了异常。
执行结果:两条sql,只有一条执行成功。明显和预期不符。
期望结果: 两条sql要么全执行成功,如果出错,全部不执行(回滚)。引出数据库的 事务。

通过上面这个实例,明白了数据库的事务 核心:多条sql要么全执行,要么不执行。(数据库角度)
单条sql自带提交。

严谨的我怎么会不给出相应的解决方案呢。

MySQL优化-事务
代码里开启了数据库事务机制,这样就不怕数据不一致了。
以上可能就是小伙伴碰到大部分相关问题和解决办法了吧

扩展:数据库事务实现原理?
---------------------------------------分割线---------------------------------------------------

现在我们来深刻了解一下数据库事务。

1.事务(Transaction)的四个属性(ACID)

上面的例子充分说明了 四个属性中的A 事务原子性。

下面重点说下I 事务隔离性。

2、数据库 并发下,不做处理会引起哪些错误?(重点)
脏读、不可重复读和幻读
脏读(dirty read):一个事务读取了另一个事务尚未提交的数据,
不可重复读(non-repeatable read) :一个事务的操作导致另一个事务前后两次读取到不同的数据
幻读(phantom read) :一个事务的操作导致另一个事务前后两次查询的结果数据量不同。

未完带更新。。。。

3、事务隔离机制(盗张图)
MySQL优化-事务

事务的隔离性–锁(同一时刻只能有一个事务对数据进行写操作,InnoDB通过锁机制来保证)
锁详情 请移步我的系列文章-MySQL优化-数据库中的锁。

相关文章:

  • 2022-03-02
  • 2021-12-04
  • 2021-12-26
  • 2021-08-12
  • 2021-06-07
  • 2021-07-06
  • 2021-06-04
  • 2021-11-06
猜你喜欢
  • 2022-02-12
  • 2021-06-09
  • 2022-12-23
  • 2021-10-10
  • 2022-12-23
相关资源
相似解决方案