【对线面试官】事务&MVCC - 图1

    【对线面试官】事务&MVCC - 图2

    【对线面试官】事务&MVCC - 图3

    【对线面试官】事务&MVCC - 图4

    【对线面试官】事务&MVCC - 图5

    【对线面试官】事务&MVCC - 图6

    【对线面试官】事务&MVCC - 图7

    【对线面试官】事务&MVCC - 图8

    【对线面试官】事务&MVCC - 图9

    【对线面试官】事务&MVCC - 图10

    【对线面试官】事务&MVCC - 图11

    【对线面试官】事务&MVCC - 图12

    【对线面试官】事务&MVCC - 图13

    【对线面试官】事务&MVCC - 图14

    【对线面试官】事务&MVCC - 图15

    【对线面试官】事务&MVCC - 图16

    【对线面试官】事务&MVCC - 图17

    【对线面试官】事务&MVCC - 图18

    【对线面试官】事务&MVCC - 图19

    【对线面试官】事务&MVCC - 图20

    【对线面试官】事务&MVCC - 图21

    一不小心就写了这么长了,总结下今天的知识点吧(赞和转发是肯定要的,别想了,又不用钱):

    • 事务为了保证数据的最终一致性
    • 事务有四大特性,分别是原子性、一致性、隔离性、持久性

      • 原子性由undo log保证
      • 持久性由redo log 保证
      • 隔离性由数据库隔离级别供我们选择,分别有read uncommit,read commit,repeatable read,serializable
      • 一致性是事务的目的,一致性由应用程序来保证
    • 事务并发会存在各种问题,分别有脏读、重复读、幻读问题。上面的不同隔离级别可以解决掉由于并发事务所造成的问题,而隔离级别实际上就是由MySQL锁来实现的
    • 频繁加锁会导致数据库性能低下,引入了MVCC多版本控制来实现读写不阻塞,提高数据库性能
    • MVCC原理即通过read view 以及undo log来实现