1、什么是事务?
在数据库中,事务是指一组对数据库数据的读写操作,这些操作被看作是一个单独的工作单元,并且必须作为一个整体进行提交或回滚,以保证数据的一致性和可靠性。
2、事务的4大特点?
原子性(Atomicity):指一个事务是一个不可分割的工作单元,事务中包括的所有操作要么都完成,要么都不完成。
一致性(Consistency):指事务必须是使数据库从一个一致性状态变到另一个一致性状态,是否一致性与原子性是密切相关的。
隔离性(Isolation):指一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对 并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(Durability):指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的,接下来的其他操作或故障不应该对这些数据有任何影响。
3、事务并发操作时可能会引发的问题?
脏读 :一个事务对数据进行了增删改,但未提交,另一事务可以读取到未提交的数据。如果第一个事务这时候回滚了,那么第二个事务就读到了脏数据。
不可重复读:一个事务中发生了两次读操作,第一次读操作和第二次读操作之间,另外一个事务对数据进行了修改,这就会导致两次读取的数据是不一致的。
幻读:第一个事务对一定范围的数据进行批量查询,第二个事务在这个范围增加一条数据,这时候第一个事务就会丢失对新增数据的内容。
4、事务的隔离级别?
READ UNCOMMITTED(未提交读) :可能会导致脏读、不可重复读、幻读
READ COMMITTED(已提交读) :可以解决脏读问题,但是可能会导致不可重复读、幻读
EPEATABLE READ(可重复读) :可以解决脏读,不可重复读问题,但是有可能会导致幻读
SERIALIZABLE(串行化) :可以解决脏读、 不 可重复读、幻读。
5、操作事务的命令
- start transaction; 开启事务
- commit; 提交
- rollback; 回滚