标签:划水 事务 -- 幻读 Read 提交 MYSQL 数据
数据库事务4个特性(ACID)
1、原子性(Atomicity):操作不可分割,要么完成,要么不完成。
2、一致性(Consistency):数据一致性。如A转账给B,B增加的数额等于A减少的数额。
3、隔离性(Isolation):不同操作间互不影响。
4、持久性(Durability):记录需要持久化。如转账成功后,就能一直生效,而不是在没有其他操作的情况下,转账的操作结果失效。
事务是什么
事务是一个或多个数据库操作集合。这个操作集合能保证原子性,隔离性,一致性和持久性。
数据库事务的错误情况
1、脏读:一个事务读到另一个事务未提交的数据。
2、不可重复读:事务A在事务B修改或删除数据并提交前后,各读取了一次数据,两次读取到的数据是不一致的。
3、幻读:事务A在事务B新增数据并提交前后,各读取了一次数据,两次读取到的数据不一致。
事务隔离级别
1、读未提交(Read Uncommitted):一个事务能读到另一个事务未提交的数据,导致脏读。
2、读已提交(Read Committed):一个事务只能读到另一个事务提交了的数据,有不可重复读和幻读的问题。
3、可重复读(Repeatabled Read):事务A先根据某些条件查询出了一些数据,之后另一个事务B又向表中修改了部分符合这些条件的记录并提交,事务A再次根据该条件查询时,读出的仍然是第一次查询出的数据。但仍然有幻读问题。
4、串行化(Serializable):事务不能并发操作,只允许串行操作,能防止脏读、不可重复读和幻读问题。
注意:这四种隔离级别是SQL的标准定义,在MYSQL实现中,MYSQL在"Repeatabled Read"隔离级别时,是可以禁止幻读问题的发生的。
MYSQL事务相关命令
1、MYSQL开启事务命令:begin
2、MYSQL提交事务命令:commit
3、MYSQL回滚事务命令:rollback
标签:划水,事务,--,幻读,Read,提交,MYSQL,数据 来源: https://blog.51cto.com/15049788/2619937
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。