死锁: delete+insert不存在PK
###### 表结构及数据CREATE TABLE `tb` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) , `b` int(11) , `c` int(11) , PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;/*Data for the table `tb` */insert into `tb`(`id`,`a`,`b`,`c`) values (1,1,0,1...
mysql metadata lock原理与实现
FROM :http://www.cnblogs.com/cchust/p/4303929.html 上一篇《mysql metadata lock(一)》介绍了为什么引入MDL,MDL作用以及MDL锁导致阻塞的几种典型场景,文章的最后还留下了一个小小的疑问。本文将更详细的介绍MDL,主要侧重介绍MDL的原理和实现。一般而言,商业数据库系统实现锁,一般将锁划分为读锁(共享锁)...
锁:innodb_lock_wait_timeout和 innodb_rollback_on_timeout?
innodb_lock_wait_timeout 超时后只回滚一条sql,整个事务并不回滚,如需要事务回滚,则需要设置innodb_rollback_on_timeouthttp://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_lock_wait_timeoutinnodb_lock_wait_timeout Command-Line Format...
线上死锁问题分析
转载自Simple Life 本文链接地址: 一个线上死锁问题分析 一个线上死锁问题分析死锁日志如下:TRANSACTION 48AA4BB9, ACTIVE 0 sec insertingmysql tables in use 1, locked 1LOCK WAIT 6 lock struct(s), heap size 1248, 4 row lock(s), undo log entries 2MySQL threa...
死锁:非唯一索引+RR,相邻key插入发生死锁
# DDL + DATADROP TABLE IF EXISTS `tb1`;CREATE TABLE `tb1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, `c` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `idx_uniq_a` (`a`), KEY `idx_b` (`b`)) E...
[笔记]锁:各种场景 整理
see:http://dev.mysql.com/doc/refman/5.5/en/innodb-locks-set.html原理:当主键/唯一索引进行更新(INSERT/UPDATE/DELETE)时,如果无法获取记录的X锁,会转为等待获取S锁,当获取到S锁后,再尝试获取X锁 (死锁发生的原因)=============场景表结构CREATE TABLE `tb` ( `id` int(11) NOT NULL AUTO_INCREMENT...
死锁:多线程同时删除唯一索引上的同一行
FROM http://hedengcheng.com/?p=844一个最不可思议的MySQL死锁分析 1 死锁问题背景 1 1.1 一个不可思议的死锁 11.1.1 初步分析 &n...
supremum pseudo-record锁影响
在开发中,经常会做这类的判断:根据主键值查询,如果不存在,则插入;否则更新。例如表结构点击(此处)折叠或打开CREATE TABLE `t` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `val` BIGINT(20) NOT NULL, PRIMAR...