码迷,mamicode.com
首页 > 数据库 > 详细

MySQL高级-锁机制

时间:2017-06-25 16:57:24      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:带来   释放   分类   innodb   其他   事务处理   没有   问题   isa   

一、概述

  1、定义

    技术分享

  2、锁的分类

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

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

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

    ②从对数据操作的粒度分 

      表锁

      行锁 

 

二、三锁

  1、表锁(偏读)

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

      案例分析:

        建表:

          技术分享

        手动增加表锁:

          技术分享

        手动释放表:

          unlock tables;

        查看表状态命令:

          show open tables;

        过程:

          技术分享

          技术分享

          技术分享

          技术分享

          技术分享

          技术分享

          技术分享

      结论:

        技术分享

        技术分享

      表锁分析:

        技术分享

        技术分享 

  2、行锁(偏写)

    特点:

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

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

    由于行锁支持事物:

      事务(Transaction)及其ACID属性:

        技术分享

 

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

        更新丢失(Lost Update):

          技术分享

        脏读(Dirty Reads):

          技术分享

        不可重复读(Non-Repeatable):

          技术分享

        幻读(Phantom Reads):

          技术分享

      事务的隔离级别:

        技术分享

    间隙锁:

      技术分享

    如何锁定一行:

      技术分享

      结论:

        技术分享

    行锁总结:

      技术分享

      技术分享

    优化建议:

      技术分享

  3、页锁

    技术分享

 

   

MySQL高级-锁机制

标签:带来   释放   分类   innodb   其他   事务处理   没有   问题   isa   

原文地址:http://www.cnblogs.com/zhaobingqing/p/7074821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!