1事务的作用
当同一个操作需要多条sql执行,一条执行失败,其余哪怕执行成功了也要回滚数据;除非所有的sql都完美的执行成功了。需要用一个事务把这一系列的sql执行概括成为一个整体,这个整体的特性如下:
A原子性:强调这些操作的不可再分的特性;
C一致性:强调这些操作的执行结果应该是正确的;
I隔离性:强调多个事务应该是可以并发的、且是一致的;
并发的事务需要考虑的问题有:数据的一致性。
D持久性:强调事务执行的数据最终是可以被放到数据库中的;
2事务隔离
读未提交(Read Uncommitted):什么也避免不了。
读提交(Read Committed):避免“脏读”,但是可能出现“不可重复读”和“幻读”。
可重复读(Repeated Red):避免出现“脏读”、“不可重复读”,但是可能出现“幻读”。
串行化(Serializable):有效避免“脏读”、“不可重复读”、“幻读”,不过性能太差,几乎不会用到。
脏读、不可重复读、幻读,参考:https://baijiahao.baidu.com/s?id=1611918898724887602&wfr=spider&for=pc