10.11 请你说下你对ACID的理解
难度:★
重点:★★
白话解析
前面的题目搞明白了MySQL的原理、架构和索引,那接下来,我们捋一捋SQL在执行过程中的最核心的问题了——事务问题。
先搞明白事务的4个特性。
参考答案
1、A(Atomicity):原子性,就是一堆的SQL操作要么全部成功,要么全部失败。由UndoLog保证。
2、I(Isolation):隔离性,通常来说一个事务在完全提交之前,对其他事务是不可见的(有例外情况)。通过锁来保证。
3、D(Durability):持久性,一旦事务提交,那么就永远是这样子了,哪怕系统崩溃也不会影响到这个事务的结果。由RedoLog实现。
4、C(Consistency):一致性,系统(数据库)总是从一个一致性的状态转移到另一个一致性的状态,不会存在中间状态。前面的原子性、隔离性、持久性都是为了保证我们系统的一致性的。
10.12 事务并发产生的问题有哪些以及如何解决
难度:★
重点:★★★