并发控制机制大体上可分为悲观的和乐观的两种:

    • 悲观的并发控制方法认为数据库的一致性经常会受到破坏,因此在事务访问数据对象前须采取一定措施加以控制,只有得到访问许可时,才能访问数据对象,如基于封锁的并发控制方法。——事前控制
    • 乐观的并发控制方法则认为数据库的一致性通常不会遭到破坏,故事务执行时可直接访问数据对象,只在事务结束时才验证数据库的一致性是否会遭到破坏,如基于有效性验证方法。——事后验证

    什么是锁机制:

    • 锁的主要作用是管理共享资源的并发访问,锁可以用于实现事务的隔离。
    • 为了避免多个事务同时操作数据库导致数据异常,一般会通过锁机制解决。
    • 从对数据的操作类型(读/写)分类:共享锁(读锁)、排它锁(写锁)
    • 从对数据的操作粒度分类:表锁、行锁

    image.png

    锁粒度:

    • 锁粒度是指锁的作用范围。原则是让锁定对象更有选择性。也就是尽量只锁定部分数据,而不是所有的资源。
    • 锁粒度越小,越适合做并发更新操作。
    • 锁粒度越大,越适合做并发查询操作。

    锁策略:是指在锁的开销和数据的安全性之间寻求平衡。

    • 表锁是MySQL中最基本的锁策略,而且是开销最小的策略。
    • 行锁可以最大程度地支持并发处理,同时也带来了最大的锁开销。