加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL在并发场景下的问题及解决思路

发布时间:2019-07-07 21:35:55 所属栏目:编程 来源:程序员圣经
导读:1、配景 对付数据库体系来说在多用户并发前提下进步并发性的同时又要担保数据的同等性一向是数据库体系追求的方针,既要满意大量并发会见的需求又必需担保在此前提下数据的安详,为了满意这一方针大大都数据库通过锁和事宜机制来实现,MySQL数据库也不破例

表user:

  1. CREATE TABLE `USER` (  
  2. `ID` INT(11) NOT NULL AUTO_INCREMENT,  
  3. `NAME` VARCHAR(300) DEFAULT NULL,  
  4. `AGE` INT(11) DEFAULT NULL,  
  5. PRIMARY KEY (`ID`)  
  6. ) ENGINE=INNODB AUTO_INCREMENT=5 DEFAULT CHARSET=UTF8 

下面演示事宜1、事宜2事变的环境:

MySQL在并发场景下的题目及办理思绪

这是一个简朴的死锁场景,事宜1、事宜2互相守候对方开释锁,InnoDB存储引擎检测到死锁产生,让事宜2回滚,这使得事宜1不再守候事宜B的锁,从而可以或许继承执行。那么InnoDB存储引擎是怎样检测到死锁的呢?为了弄大白这个题目,我们先搜查此时InnoDB的状态:

  1. show engine innodb statusG 

------------------------

LATEST DETECTED DEADLOCK

------------------------

  1. 2018-01-14 12:17:13 0x70000f1cc000  
  2. *** (1) TRANSACTION:  
  3. TRANSACTION 5120, ACTIVE 17 sec starting index read  
  4. mysql tables in use 1, locked 1  
  5. LOCK WAIT 3 lock struct(s), heap size 1136, 2 row lock(s)  
  6. MySQL thread id 10, OS thread handle 123145556967424, query id 2764 localhost root updating  
  7. update user set name='haha' where id=4 

*** (1) WAITING FOR THIS LOCK TO BE GRANTED:

  1. RECORD LOCKS space id 94 page no 3 n bits 80 index PRIMARY of table `test`.`user` trx id 5120 lock_mode X locks rec but not gap waiting  
  2. Record lock, heap no 5 PHYSICAL RECORD: n_fields 5; compact format; info bits 0  
  3. 0: len 4; hex 80000004; asc ;;  
  4. 1: len 6; hex 0000000013fa; asc ;;  
  5. 2: len 7; hex 520000060129a6; asc R ) ;;  
  6. 3: len 4; hex 68616861; asc haha;;  
  7. 4: len 4; hex 80000015; asc ;; 

*** (2) TRANSACTION:

  1. TRANSACTION 5121, ACTIVE 12 sec starting index read  
  2. mysql tables in use 1, locked 1  
  3. 3 lock struct(s), heap size 1136, 2 row lock(s)  
  4. MySQL thread id 11, OS thread handle 123145555853312, query id 2765 localhost root updating  
  5. update user set name='hehe' where id=3 

*** (2) HOLDS THE LOCK(S):

  1. RECORD LOCKS space id 94 page no 3 n bits 80 index PRIMARY of table `test`.`user` trx id 5121 lock_mode X locks rec but not gap  
  2. Record lock, heap no 5 PHYSICAL RECORD: n_fields 5; compact format; info bits 0  
  3. 0: len 4; hex 80000004; asc ;;  
  4. 1: len 6; hex 0000000013fa; asc ;;  
  5. 2: len 7; hex 520000060129a6; asc R ) ;;  
  6. 3: len 4; hex 68616861; asc haha;;  
  7. 4: len 4; hex 80000015; asc ;; 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读