zoukankan      html  css  js  c++  java
  • MySQL高级-锁机制

    一、概述

      1、定义

        

      2、锁的分类

        ①从对数据操作的类型(读写)分

          读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响。

          写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁。

        ②从对数据操作的粒度分 

          表锁

          行锁 

    二、三锁

      1、表锁(偏读)

          特点:偏向MyISM存储引擎,开销小,加锁块;无死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

          案例分析:

            建表:

              

            手动增加表锁:

              

            手动释放表:

              unlock tables;

            查看表状态命令:

              show open tables;

            过程:

              

              

              

              

              

              

              

          结论:

            

            

          表锁分析:

            

             

      2、行锁(偏写)

        特点:

          偏向InnoDB存储引擎,开销大,加锁慢;会出现死锁;锁定粒度小,发生锁冲突的概率最低,并发度最高。

          InnoDB与MyISAM最大不不同有两点,一是支持事务,二是采用了行级锁。

        由于行锁支持事物:

          事务(Transaction)及其ACID属性:

            

          并发事务处理带来的问题:

            更新丢失(Lost Update):

              

            脏读(Dirty Reads):

              

            不可重复读(Non-Repeatable):

              

            幻读(Phantom Reads):

              

          事务的隔离级别:

            

        间隙锁:

          

        如何锁定一行:

          

          结论:

            

        行锁总结:

          

          

        优化建议:

          

      3、页锁

        

       

  • 相关阅读:
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    软工作业1
    总结
    2013-2014 ACM ICPC Central European Regional Contest (CERC 13) K-Digraphs
    2018CCPC吉林赛区 F
    计蒜客-A1594 封印之门
    HDU-1599 find the mincost route
    POJ-2240 Arbitrage
  • 原文地址:https://www.cnblogs.com/zhaobingqing/p/7074821.html
Copyright © 2011-2022 走看看