说好的每天一个技术博客,选了iteye,但是,那个界面真的好丑啊,丑的让我都没写下去的欲望了,所以,还是转移到博客园里面吧,虽然这里也是很丑的!

  直接步入正题:

  1. 数据库锁包括:读锁(可共享锁)和写锁(排它锁),他们之间的关系如下

  读锁(S) 写锁(X)
读锁(S) +
写锁(X)

  说明:+表示兼容,—表示不兼容

  由上图可见:读锁与读锁之间是兼容的,但是其他就不兼容,也就是说如果加了写锁,那么就不能加其他的所。

  示例(摘抄同事的):

时间

Tx1:

Tx2:

T1

Set autocommit=0;

Set autocommit=0;

T2

select * from union_plan lock in share mode;

 

T3

 

update union_plan set notes='' ;

blocking

  2:查看锁的命令:SELECT * FROM information_schema.innodb_locks

  3: 锁按粒度分:表锁和行锁

  行锁:锁住的只是一行数据,对于其他数据没有影响。

  表锁:顾名思义,就是锁住的是一个表,自此,这个表便无法操作,常用DDL命令中。由于表锁涵盖了行锁,所以,表锁和行锁之间有冲突

  为了方便见此表锁和行锁之间的冲突便引入了意向锁,

  意向锁分为意向读锁(IS)和意向写锁(IX)。

  意向锁是表级锁,但是去表示一个事务正在读或者写一条记录而不是整个表,所以意向锁之间不会产生冲突,真正的冲突在加行锁时检查

  在加行锁时,要先加一个意向锁。示例如下: 

A. trx1 BEGIN
  B. trx1 给 T1 加X锁,修改表结构。
  C. trx2 BEGIN
  D. trx2 给
T1 加IX锁(事务被阻塞,等待加锁成功)
  E. trx2 给
T1 的一行记录加S或X锁.

  表锁的兼容性矩阵

IS IX S  X
  IS +  + 
+  – 
  IX +  + 
-  -
  S  +  -  +  -
  X  -  -  -  -
  + 代表兼容,
-代表不兼容

意向锁之间不会冲突,
因为意向锁仅仅代表要对某行记录进行操作。在加行锁时,会判断是否冲突。

结语:先写到这里吧,剩下的我再好好看看,写技术博客真的便于加强理解呢

mysql innodb锁简析(1)的更多相关文章

  1. mysql innodb锁简析(2)

    继续昨天的innodb锁的分析: 注:此博文参考一下地址,那里讲的也很详细.http://xm-king.iteye.com/blog/770721 mysql事务的隔离级别分为四种,隔离级别越高,数 ...

  2. mysql: 关于MySQL InnoDB锁行还是锁表?

          baidu zone - 关于MYSQL Innodb 锁行还是锁表,深入讲解

  3. [转]关于MYSQL Innodb 锁行还是锁表

    关于mysql的锁行还是锁表,这个问题,今天算是有了一点头绪,mysql 中 innodb是锁行的,但是项目中居然出现了死锁,锁表的情况.为什么呢?先看一下这篇文章. 目时由于业务逻辑的需要,必须对数 ...

  4. MySQL InnoDB锁机制

    概述: 锁机制在程序中是最常用的机制之一,当一个程序需要多线程并行访问同一资源时,为了避免一致性问题,通常采用锁机制来处理.在数据库的操作中也有相同的问题,当两个线程同时对一条数据进行操作,为了保证数 ...

  5. mysql InnoDB锁等待的查看及分析

    说明:前面已经了解了InnoDB关于在出现锁等待的时候,会根据参数innodb_lock_wait_timeout的配置,判断是否需要进行timeout的操作,本文档介绍在出现锁等待时候的查看及分析处 ...

  6. RDS MySQL InnoDB 锁等待和锁等待超时的处理

    https://help.aliyun.com/knowledge_detail/41705.html 1. Innodb 引擎表行锁等待和等待超时发生的场景 2.Innodb 引擎行锁等待情况的处理 ...

  7. MySQL InnoDB锁机制之Gap Lock、Next-Key Lock、Record Lock解析

    MySQL InnoDB支持三种行锁定方式: l   行锁(Record Lock):锁直接加在索引记录上面,锁住的是key. l   间隙锁(Gap Lock):锁定索引记录间隙,确保索引记录的间隙 ...

  8. 你需要知道的MySQL&InnoDB锁都在这里

    目录 一.前言 二.锁的类型 2.1 全局锁 2.2 表级锁 2.2.1 表锁 2.2.2 元数据锁(Meta Data Locks) 2.2.3 自增列锁(AUTO-INC Locks) 2.2.4 ...

  9. mysql——InnoDB 锁

    https://www.cnblogs.com/leedaily/p/8378779.html 1.InnoDB锁的实现方式:给索引项加锁,只有通过索引条件检索数据,InnoDB才使用行级锁,否则,I ...

随机推荐

  1. poj 3621(最优比率环)

    题目链接:http://poj.org/problem?id=3621 思路:之前做过最小比率生成树,也是属于0/1整数划分问题,这次碰到这道最优比率环,很是熟悉,可惜精度没控制好,要不就是wa,要不 ...

  2. Linux下ps -ef和ps aux的区别及格式详解

    Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux.这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格, System V风格和BSD 风格 ...

  3. [RM HA 2] Hadoop 2.0 ResourceManager HA原理

    继上篇文章验证Cloudera RM HA功能后,现在开始分析Cloudera RM HA的原理. 设计目标 主要目的是为了解决两种问题 计划外的机器挂掉 计划内的如软件和硬件升级等. 架构 流程:两 ...

  4. Android核心分析之十八Android电话系统之RIL-Java

    Android RIL-Java 123.jpg (2.09 KB, 下载次数: 1) 下载附件  保存到相册 2012-3-21 10:47 上传   RIL-Java在本质上就是一个RIL代理,起 ...

  5. iOS开发--控件

    iOS知识点整理-提示器 http://www.jianshu.com/p/ac7e13d36e32 iOS知识点整理-RunLoop http://www.jianshu.com/p/e4fc6ac ...

  6. Keil 4.7a版本问题&Jlink Clone问题

    听PP说Keil 4.7A新出,支持代码自动补全.激动之至,keil官网急填,下载安装.  问题即刻遇见①,电脑蓝屏,安装包损坏.当下载安装包未下载完时,续传安装包没用了.还是重下载吧,免得浪费时间. ...

  7. 311. Sparse Matrix Multiplication

    题目: Given two sparse matrices A and B, return the result of AB. You may assume that A's column numbe ...

  8. VI操作--跳到最后一行和跳到最后一行的最后一个字符

    vi操作 1.跳到文本的最后一行:按“G”,即“shift+g” 2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”. 3.跳到第一行的第一个字符:先按 ...

  9. iphone 6 设置自定义铃声(未越狱)

    环境: ipone 6 iTunes 12.4.0.119 IOS 9.3.2 先把需要设置的铃声下载到电脑上,然后打开iTunes下的文件->将文件添加到资料库,如图: 2.在音乐列表里右击所 ...

  10. Combiner

    如果job 设置了 combiner ,则job的每个map运行的数据会先进入combiner,然后再通过patitioner分发到reduce.通过combiner能减少reduce的计算.空间压力 ...