什么是事务?
事务是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败
事务的特性(4种)?
原子性(atomicity):强调事务是不可分隔的;
一致性(consistency):事务执行的前后,数据的完整性保持一致;
隔离性(isolation):一个事务执行的过程中,不应该受到其它事务的干扰
持久性(durability) :事务一旦被提交,数据就将持久到数据库中
如果不考虑隔离性引发安全性问题?:
脏读:一个事务读到了另一个事务未提交的数据。
不可重复读:一个事务读到了另外一个事务提交的update的数据导致多次查询结果不一致.
虚幻读:一个事务读到了另一个事务已提交insert的数据,导制每次晒询的结果不一致;
解决读问题:设置事务的隔离级别(5种)
Default:这是默认的隔离级别,使用数据库默认的隔离级别。
未提交读(read uncommited):脏读不可重复读,虚读都有可能发生
已提交读(read commited):避免脏读,但是不可重复读和虚读都有可能发生
可重复读(repeatable read) :避脏读和不可重复读,但虚读有可能发生
串行化的 (serializable) :避免以上所有的问题
Mysql默认:可重复读
Oracle默认:读已提交