先说事务的特性,要想成为事务,必须满足:ACID(原子性,一致性,隔离性,持久性)四特性
原子性
(Atomic)(Atomicity)
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性
事务在完成时,必须使所有的数据都保持一致状态。
隔离性
由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。
持久性
事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。
乐观锁
乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时,认为这次的操作不会导致冲突,在操作数据时,并不进行其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。
悲观锁
与乐观锁相对应的就是悲观锁了。悲观锁就是当一个事务对 数据进行操作的时候对数据加“锁”,在此事务没有提交之前,其他事务是不能操作该数据的,只有这个事务结束提交后,其他事物才能对它进行操作。
共享锁
共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。
排它锁
排它锁与共享锁相对应,就是指对于多个不同的事务,对同一个资源只能有一把锁。
行锁
行锁,由字面意思理解,就是给某一行加上锁,也就是一条记录加上锁。
表锁
表锁,和行锁相对应,给这个表加上锁。