事务的特性及事务的隔离级别
事务四个特性:
原子性:事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做
一致性:事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。
隔离性:一个事务的执行不能被其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性:指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。
事务隔离级别:Read uncommitted、Read committed、Repetable read、Serializable
Read uncommitted:俗称读未提交,指的是一个事物还没提交时,它的变更就能别的事务看到
Read committed:俗称读已提交,指的是一个事务提交之后,它的变更才会被其他事务看到
Repetable read:俗称可重复读,指的是一个事务执行过程中看到的数据总是跟这个事务启动时看到的数据是一致的,同时当其他事务在未提交时,变更是不可见的
Serializable:俗称串行化,顾名思义就是对于同一行记录,"写"会加"写锁","读"会加"读锁",当出现读写锁冲突时,后访问的事务必须等前一个事务执行完成才能继续执行