一、概述

  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. [deviceone开发]-毛玻璃效果示例
  2. lwfs指定特定目录输出
  3. string.Format之你不知道的事
  4. CentOS 设置网络(修改IP&修改网关&修改DNS)--update.14.08.15
  5. TMS320C54x系列DSP的CPU与外设——第2章 TMS320C54x DSP体系结构总体介绍
  6. django_auth_ldap
  7. createElement、createTextNode、setAttribute使用方法
  8. 用python把一个txt文件中所有逗号,替换成空格?
  9. java集合-HashMap源码解析
  10. 【基础练习】【区间DP】codevs1090 加分二叉树题解
  11. MYSQL与MSSQL对比学习
  12. 「Vue」Vue cli3中引用mui-ui问题及解决办法
  13. OpenGL笔记<5> shader 调试信息获取 Debug
  14. iOS-APP启动页加载广告
  15. SqlMapConfig.xml中的setting属性 Ibatis mybatis
  16. yum安装软件所在目录的查询
  17. C/C++中一些不太注意到的小知识点--[锦集]
  18. R简易安装
  19. jsp tag 直接文件实现
  20. 理解Javascript_01_理解内存分配

热门文章

  1. 解析纯真IP地址库
  2. MySQL数据库------常用函数
  3. Mapper.xml映射文件
  4. fc全连接层的作用、卷积层的作用、pooling层、激活函数的作用
  5. SVN工具使用总结
  6. mongodb安装(比较全一点)
  7. CRegKey 注册表操作 转
  8. Ajax全局加载框(Loading效果)的配置
  9. Redis 基本操作(一)
  10. sql server 获取存储过程,表值,标量函数的参数