zoukankan      html  css  js  c++  java
  • 1.事务与事务之间问题的解决还可以使用锁机制

      A.乐观锁

      理解:

        a.事务A,在操作前,给表加了一个标记 1操作过程中,事务B,也操作了这个表,同时把1变成了2当事务A,结束操作前,发现标记不是原来的1了,放弃修改放弃操作

        b.小孩吃饼干:玩之前有八块饼干,回来发现只有六块了,不吃了

        c.乐观的意思时他认为很安全、乐观

        d.简单理解为,本来标记东西被人动了,放弃了对这个东西得操作

      B.悲观锁

        理解:事务A在操作之前,把表锁起来,在此期间,只允许当事务A操作表,其他事务必须等待事务A结束后才能操作

    2.读写分类

      A.共享锁-针对读操作

        理解:共享锁:当事务小明,操作时加了共享锁,其他事务只能读该表数据,不能修改,但是也可以加共享锁,不能加排它锁

      B.排他锁-针对写操作

        理解:当事务A给表加了排他锁之后,其他事务只能等待该事务的结束才能继续操作。事务A在此期间可以读写表内容

      注意:

        a.如果时读取数据,但是不允许其他事务修改数据时,可以使用共享锁
        b.如果是写数据,而且不允许其他事务操作当前表数据,那么可以使用排他锁

    3.锁的粒度
       A. 表锁
            a.将整张表都锁起来
            b.开销小,加锁快,不会出现死锁。锁的粒度最大,适合查询为主的,只有少量按索引条件更新数据的操作。
            c.开销小,粒度最大。
            d.缺点时资源争用概率高
        B.行锁
            a.开销大,加锁慢,会出现死锁。锁的粒度最小,适合大量按索引条件并发更新少量不同数据,同时又有并发查询的操作。
            b.使用行级锁定的主要时InnoDB存储引擎
            c.范围越小越麻烦越慢开销越大
            d.开销大,粒度小
       C.页面锁
       注意:锁的粒度可以理解为锁的范围

  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/dyxg/p/12714454.html
Copyright © 2011-2022 走看看