MySQL基础篇(一)
1. 事物的四大特性事务是逻辑上的一组操作,要么都执行,要么都不执行
[*]原子性(Atomicity):事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;
[*]一致性(Consistency):执行事务前后,数据保持一致,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的;
[*]隔离性(Isolation):并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;
[*]持久性(Durability):一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。
2. MySQL事物的四个隔离级别
2.1 隔离级别
[*]读取未提交 :最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。
[*]读取已提交 :允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。
[*]可重复读 :对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。
[*]可串行化 :最高的隔离级别,完全服从 ACID 的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。
2.2 各隔离级别可能会导致的问题
隔离级别脏读不可重复读幻读读取未提交可能出现可能出现可能出现读取已提交解决可能出现可能出现可重复读 解决解决可能出现可串行化 解决解决解决
3. 事物的脏读、幻读、不可重复读
3.1 脏读
A事物读取表中数据为500
B事物将表中数据修改为350,未提交
A事物再次读取数据为350
B事物回滚
此时数据库中数据仍为500,认为A事物第二次读到的数据为脏数据
3.2 幻读
幻读是指一个事务在多次查询中返回了不一致的结果。例如,假设有两个事务C和D,C首先按照某个范围条件(如id>10 and id目录
来源:https://www.cnblogs.com/always-uie/p/18329657
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页:
[1]