0. 定位和排查问题的常用语句

查询 正在执行的事务(这个输出有事物状态表明是否等待锁):
SELECT * FROM information_schema.INNODB_TRX

查看正在锁的事务:
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

查看等待锁的事务:

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
 
这个语句显示当前所有的连接以及连接信息:
show processlist
查看最近一个sql查询产生的警告:
show warnings;
查看死锁日志:
show engine innodb status \G; 
 

1. Gap 锁是单纯的防止其他事物在间隙中插入(修改),他们不妨碍其他事物在相同的间隙中加间隙锁(间隙X锁和S锁是一样的效果)。

举一个例子:

  假设A事物在(3,6)上持有间隙锁,B事物使用update索引 4 的记录,但是索引4记录不存在,锁住了同样的(3,6)间隙锁,这是可以成功的。

  继续,如果B事物update更新索引1记录的值为索引4,此时,索引记录1存在,锁住的是(1,3)间隙,但是起更改后的结果是影响到了A事物的加了锁的间隙(3,6),这是不能插入或更新。

最新文章

  1. svn 应该忽略的文件(visual studio)
  2. EF:Oracle.DataAccess.Client.OracleException: ORA-12154: TNS:could not resolve the connect identifier specified
  3. 2.1 C#的关键字
  4. [Android] Google IAP unmaneged items服务器校验
  5. 安装Linux Mint
  6. windows使用nginx实现网站负载均衡测试实例
  7. JavaScript(二)——语法
  8. Devexpress-1 DataGrid控件
  9. oracle 解锁表
  10. QCustomplot使用分享(一) 能做什么事
  11. poj 2142 扩展欧几里得解ax+by=c
  12. dd命令刻录u盘启动盘
  13. 多项分布(multinominal distribution)
  14. C# 数据访问编码需要遵循的几个规范
  15. day 08 字符编码和文件的读写操作
  16. thinkphp如何省略index.php
  17. springmvc源码解析(二)
  18. echo * 打印当前目录列表
  19. 关于django的操作(四)
  20. 49. jdk-6u45-linux-i586.bin安装步骤

热门文章

  1. adb 连接 mumu 模拟器
  2. CentOS 7.6 RPM方式安装Oracle19c的过程
  3. Linux命令学习(0)
  4. 如何在centos6和centos7上部署nfs共享服务器和客户端
  5. 使用CSDN-markdown编辑器粘贴代码块时崩溃问题解决
  6. python 序列解包(解压缩)
  7. 搜索专题: HDU1242 Rescue
  8. SCUT - 485 - 质因数计数 - 原根
  9. ubuntu install xsltproc docbook-xsl docbook-xml
  10. Python 通过dmidecode获取Linux服务器硬件信息