作者:梦里的天真575 | 来源:互联网 | 2023-05-30 13:18
所有受到影响的数据将返回事务开始以前的状态;如果单元中的所有SQL语句均执行成功,则事务被顺利执行。一致性事务必须使数据库从一个一致性状态变换到另一个一致性状态。这个隔离级
1 .什么是数据库事务? 事务由单个单元的一个或多个SQL语句组成,在该单元中,
每个MySQL语句都是相互依赖的。 作为各个单元整体不可分割整体
如果设备中的SQL语句执行失败或发生错误,整个设备将回滚。
所有受影响的数据都将恢复到事务开始前的状态。 如果设备中的所有SQL语句都成功执行,则事务将成功执行。
2 .事务特点? 原子性(Atomicity )
原子性意味着事务是不可分割的职场,
事务期间的所有操作要么发生,要么不发生。
一致性) )。
事务必须将数据库从一个一致性状态转换到另一个一致性状态。
隔离(隔离) )
事务的独立性是指一个事务的执行不应被另一个事务干扰。
也就是说,一个事务中的操作和使用的数据与同时执行的其他事务分离。
同时执行的事务之间不得发生干扰。
持久性(Durability ) )。
持久性意味着提交事务时,即使数据库中的数据发生更改,该事务也是永久的,不应影响任何后续操作或数据库故障。
3 .事务隔离级别?
读取3358 www.Sina.com/http://www.Sina.com /数据时既不锁定也不检查,并且可能读取未提交的数据。 只读取3358 www.Sina.com/http://www.Sina.com /提交的数据,等待其他的解除排他锁定。 读取数据的共享锁定在读取操作完成后立即解除。 此隔离级别是sql server的默认隔离级别。 已提交,如3358 www.Sina.com/http://www.Sina.com /所读,但共享锁在事情结束之前不会解除。 3358 www.Sina.com/http://www.Sina.com /类似于可读,但锁定不仅锁定查询的数据,还锁定查询的范围,以防止将新数据插入查询的范围
未提交读:一个事务读取了另一个事务中未提交的数据
33558www.Sina.com/:1:在一个事务范围内,两次相同的查询返回两个不同的数据,原因是在此间隔内其他事务修改了数据。
:是事务不独立运行时出现的现象。 例如,第一个事务修改表中的数据,该更改包括表中的所有数据行。 另外,第二个事务通过在表中插入新行来修改此表中的数据。 然后,稍后处理第一个事务的用户会注意到表中存在未修改的数据行,就像看到了幻觉一样。
重复读法和幻像读法的区别:
33558www.Sina.com/:1:在一个事务中多次读取同一数据时,结果不一致
33558www.Sina.com/:1:在一个事务中使用同一SQL读取了两次,第二次读取了其他事务新插入的行。