标签:现象 多次 mysq 可重复 个数 不同的 做了 情况 相互
总感觉是儿时的内容。面试所需,
数据库事务四大特性。ACID。
首先啥是事务,单位逻辑工作单元执行的一系列操作,要么完全执行,要么不执行
1、Atomicity,原子性
事务包含的操作要么成功,要么失效回滚,如果成功,则应用安全应用于数据库,失效则不能对数据库有任何影响。
2、Consistency,一致性
事务必须使数据库从一个一致状态换到另一个一致状态,也就是说一个事务执行之前和执行之后都必须处于一致状态。
3、隔离型,Isolation
当多个用户并发访问数据库时,数据库为每个用户开启的事务,不被其它事务干扰,即并发访问事务相互隔离。
4、持久性,Durability
一个事务一旦被提交了,那么对数据库中的数据的干煸就是永久性的。即使在数据库遇到故障的情况下也不会丢失提交的操作。
如果不考虑事务的隔离型,那么会发生几种问题。
1、脏读,在一个事务里读取了另一个未提交的事务中的数据。
2、不可重复度,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。
3、幻读。是事务非独立执行时发生的现象。例如事务T1对一个表中所有的行的某个数据项做了从1修改为2的操作,这时事务T2对这个表中插入了一行数据项,1。这时查看数据发现有一行没有修改,其实这是T2插进来的。
幻读和不可重复度都是读取了另一条已提交的事务,不同的是不可重复读查到的是同一数据,幻读查看了批数据。
MySql四种隔离级别
1、Serializable(穿行化),都能避免
2、可重复读,可避免脏读,不可重复读
3、读已提交,可避免脏读的发生
4、读未提交,最低级别。
标签:现象 多次 mysq 可重复 个数 不同的 做了 情况 相互
原文地址:https://www.cnblogs.com/ylxn/p/10354142.html